|
69
|
fix(events): close remaining partial event coverag fix(events): close remaining partial event coverage gaps...
|
6
|
5
|
ci.yml
|
30
|
5
|
0
|
refs/heads/main
|
07ea713c1feff2e0f7d2b91d5ca68f2e0140a963
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"14c4cca40c3b21a5247fd9117fc9af829acc8ea7","after":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/14c4cca40c3b21a5247fd9117fc9af829acc8ea7...07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","commits":[{"id":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","message":"fix(events): close remaining partial event coverage gaps\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:48:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts"]},{"id":"2bb98573012162e66541b69f713e6b469c268b2c","message":"docs(permissions): align ai docs to kebab and add 20260214 migration guide\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2bb98573012162e66541b69f713e6b469c268b2c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:38:53+08:00","added":["backend/prisma/migrations/MIGRATION_GUIDE_20260214.md"],"removed":[],"modified":["backend/prisma/migrations/DEPLOY_GUIDE.md","docs/AI-AGENT-GUIDE.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/guides/AI_AGENT_PERMISSION_SETUP_GUIDE.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md"]},{"id":"f773cce3ddbd4b1c23e4211aea0a0158da1ed047","message":"feat(db): add migration to normalize permission codes to kebab\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f773cce3ddbd4b1c23e4211aea0a0158da1ed047","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:34:44+08:00","added":["backend/prisma/migrations/20260214000003_normalize_permission_codes_kebab/migration.sql"],"removed":[],"modified":[]},{"id":"44a7486eb5e06ab7e3b26abf9d0e27c9e95eea19","message":"chore(check): enforce kebab permission naming in consistency check\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/44a7486eb5e06ab7e3b26abf9d0e27c9e95eea19","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:32:46+08:00","added":[],"removed":[],"modified":["scripts/check-consistency.ts"]},{"id":"958c331d79789ae97b222fbf14eacbcee94760b4","message":"refactor(permissions): remove _KEBAB aliases and use canonical constants\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/958c331d79789ae97b222fbf14eacbcee94760b4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:31:35+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/agent-group.routes.ts","backend/src/modules/ai-agents/ai-agent.routes.ts","backend/src/modules/lead-scoring-ai/lead-action-recommendation.routes.ts","backend/src/modules/lead-scoring-ai/lead-score-trigger.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/location-assessments/location-assessment.routes.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.routes.ts","backend/src/modules/marketing-workflows/marketing-workflow.compat.routes.ts","backend/src/modules/marketing-workflows/marketing-workflow.routes.ts","backend/src/modules/sms-marketing/sms-marketing.routes.ts","backend/src/modules/supply-chain/supplier-management.routes.ts","backend/src/modules/web-tracking/web-tracking.routes.ts","backend/src/shared/constants/permissions.ts"]}],"total_commits":0,"head_commit":{"id":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","message":"fix(events): close remaining partial event coverage gaps\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:48:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":338848,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-24T00:11:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
18
|
1771863152
|
1771863152
|
0
|
1771863141
|
1771863152
|
NULL
|
|
0
|
Edit
Delete
|
|
70
|
fix(events): close remaining partial event coverag fix(events): close remaining partial event coverage gaps...
|
6
|
5
|
test-comprehensive.yml
|
31
|
5
|
0
|
refs/heads/main
|
07ea713c1feff2e0f7d2b91d5ca68f2e0140a963
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"14c4cca40c3b21a5247fd9117fc9af829acc8ea7","after":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/14c4cca40c3b21a5247fd9117fc9af829acc8ea7...07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","commits":[{"id":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","message":"fix(events): close remaining partial event coverage gaps\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:48:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts"]},{"id":"2bb98573012162e66541b69f713e6b469c268b2c","message":"docs(permissions): align ai docs to kebab and add 20260214 migration guide\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2bb98573012162e66541b69f713e6b469c268b2c","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:38:53+08:00","added":["backend/prisma/migrations/MIGRATION_GUIDE_20260214.md"],"removed":[],"modified":["backend/prisma/migrations/DEPLOY_GUIDE.md","docs/AI-AGENT-GUIDE.md","docs/AI-AGENT-SYSTEM-ANALYSIS.md","docs/guides/AI_AGENT_PERMISSION_SETUP_GUIDE.md","docs/reports/AI_AGENT_IMPLEMENTATION_SUMMARY.md"]},{"id":"f773cce3ddbd4b1c23e4211aea0a0158da1ed047","message":"feat(db): add migration to normalize permission codes to kebab\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f773cce3ddbd4b1c23e4211aea0a0158da1ed047","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:34:44+08:00","added":["backend/prisma/migrations/20260214000003_normalize_permission_codes_kebab/migration.sql"],"removed":[],"modified":[]},{"id":"44a7486eb5e06ab7e3b26abf9d0e27c9e95eea19","message":"chore(check): enforce kebab permission naming in consistency check\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/44a7486eb5e06ab7e3b26abf9d0e27c9e95eea19","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:32:46+08:00","added":[],"removed":[],"modified":["scripts/check-consistency.ts"]},{"id":"958c331d79789ae97b222fbf14eacbcee94760b4","message":"refactor(permissions): remove _KEBAB aliases and use canonical constants\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/958c331d79789ae97b222fbf14eacbcee94760b4","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:31:35+08:00","added":[],"removed":[],"modified":["backend/src/modules/ai-agents/agent-group.routes.ts","backend/src/modules/ai-agents/ai-agent.routes.ts","backend/src/modules/lead-scoring-ai/lead-action-recommendation.routes.ts","backend/src/modules/lead-scoring-ai/lead-score-trigger.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/location-assessments/location-assessment.routes.ts","backend/src/modules/marketing-chatbot/marketing-chatbot.routes.ts","backend/src/modules/marketing-workflows/marketing-workflow.compat.routes.ts","backend/src/modules/marketing-workflows/marketing-workflow.routes.ts","backend/src/modules/sms-marketing/sms-marketing.routes.ts","backend/src/modules/supply-chain/supplier-management.routes.ts","backend/src/modules/web-tracking/web-tracking.routes.ts","backend/src/shared/constants/permissions.ts"]}],"total_commits":0,"head_commit":{"id":"07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","message":"fix(events): close remaining partial event coverage gaps\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/07ea713c1feff2e0f7d2b91d5ca68f2e0140a963","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-14T15:48:57+08:00","added":[],"removed":[],"modified":["backend/src/modules/ad-audiences/ad-audience.service.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":true,"fork":false,"template":false,"parent":null,"mirror":false,"size":338848,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-24T00:11:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
37
|
1771863178
|
1771866278
|
0
|
1771863142
|
1771866278
|
NULL
|
|
0
|
Edit
Delete
|
|
1139
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
7
|
1772178612
|
1772189124
|
0
|
1772178608
|
1772189124
|
NULL
|
|
0
|
Edit
Delete
|
|
1140
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
frontend-backend-ci.yml
|
6
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
14
|
1772189123
|
1772189722
|
0
|
1772178609
|
1772189722
|
NULL
|
|
0
|
Edit
Delete
|
|
1141
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
ios-ci.yml
|
7
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1772284752
|
1772284752
|
0
|
1772178609
|
1772284752
|
NULL
|
|
0
|
Edit
Delete
|
|
1142
|
fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行 fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为...
|
9
|
5
|
performance-check.yml
|
8
|
5
|
0
|
refs/heads/main
|
22125e0f1e435efabf81ec0007a1b56996cb0776
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"893022bfd17ce1f2e75e75651551cf8ceaacfe45","after":"22125e0f1e435efabf81ec0007a1b56996cb0776","compare_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/compare/893022bfd17ce1f2e75e75651551cf8ceaacfe45...22125e0f1e435efabf81ec0007a1b56996cb0776","commits":[{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},{"id":"e7926bf94bb1d2df1c56170dbe47940b49a70134","message":"fix(ime-core): 修复HandwritingManager测试缺少ModelDownloader参数\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/e7926bf94bb1d2df1c56170dbe47940b49a70134","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:40:23+08:00","added":[".github/workflows/ios-ci.yml",".npmrc","MIGRATION_COMPLETE_REPORT.md","admin-web/.eslintrc.cjs","docs/PNPM_MIGRATION_NOTICE.md","flutter_app/assets/fonts/PingFang-Medium.ttf","flutter_app/assets/fonts/PingFang-Regular.ttf","flutter_app/assets/fonts/PingFang-Semibold.ttf","flutter_app/assets/icons/.gitkeep","flutter_app/assets/images/.gitkeep","flutter_app/lib/features/contacts/data/contact_360_provider.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/ModelDownloader.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","package.json","pnpm-lock.yaml","pnpm-workspace.yaml","scripts/PACKAGE_MANAGER.md","scripts/PACKAGE_MANAGER_SUMMARY.md","scripts/migrate-to-pnpm.sh","scripts/package-manager-migration.md","server/api-gateway/src/modules/ai/ai.controller.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/ocr/ocr.controller.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts"],"removed":["server/ai-service/package-lock.json","server/api-gateway/package-lock.json","server/ocr-service/package-lock.json"],"modified":[".github/workflows/frontend-backend-ci.yml",".gitignore","CHANGELOG.md","CLAUDE.md","README.md","admin-web/package.json","admin-web/src/views/knowledge/index.vue","ai-panel/src/main/java/com/haizhan/ime/panel/agentic/HybridSearchExecutor.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/ContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/contact/EnhancedContactMatcher.kt","ai-panel/src/main/java/com/haizhan/ime/panel/context/InputContextCollector.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ocr/TitleBarParser.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/RagReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/reply/ReplyGenerator.kt","ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/build.gradle.kts","app/proguard-rules.pro","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","app/src/main/java/com/haizhan/ime/ui/management/SettingsScreen.kt","build.gradle.kts","common/src/main/java/com/haizhan/ime/common/theme/DesignTokens.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthInterceptor.kt","data/src/main/java/com/haizhan/ime/data/auth/AuthManager.kt","data/src/main/java/com/haizhan/ime/data/di/NetworkModule.kt","data/src/main/java/com/haizhan/ime/data/repository/SettingsRepository.kt","docs/CI_CD_PIPELINE.md","docs/CODING_STANDARDS.md","docs/DEPLOYMENT.md","docs/DEVELOPMENT_GUIDE.md","docs/TESTING_STRATEGY.md","flutter_app/.dart_tool/package_config.json","flutter_app/.dart_tool/package_graph.json","flutter_app/lib/core/bridge/haizhan_bridge.dart","flutter_app/lib/core/di/service_locator.dart","flutter_app/lib/core/theme/app_colors.dart","flutter_app/lib/core/theme/app_theme.dart","flutter_app/lib/features/auth/presentation/login_screen.dart","flutter_app/lib/features/chat/presentation/chat_screen.dart","flutter_app/lib/features/chat/presentation/conversation_screen.dart","flutter_app/lib/features/contacts/data/contacts_provider.dart","flutter_app/lib/features/contacts/presentation/contact_detail_screen.dart","flutter_app/lib/features/contacts/presentation/contacts_screen.dart","flutter_app/lib/features/home/presentation/home_screen.dart","flutter_app/lib/features/home/presentation/main_shell.dart","flutter_app/lib/features/knowledge/presentation/knowledge_screen.dart","flutter_app/lib/features/profile/presentation/profile_screen.dart","flutter_app/lib/features/search/presentation/widgets/search_metrics_indicator.dart","flutter_app/lib/features/settings/presentation/settings_screen.dart","flutter_app/lib/features/stats/presentation/widgets/contact_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/overview_tab.dart","flutter_app/lib/features/stats/presentation/widgets/reply_stats_tab.dart","flutter_app/lib/features/stats/presentation/widgets/stats_shared_widgets.dart","flutter_app/lib/features/support/presentation/about_screen.dart","flutter_app/lib/features/support/presentation/feedback_screen.dart","flutter_app/lib/features/support/presentation/help_screen.dart","flutter_app/lib/features/support/presentation/privacy_screen.dart","flutter_app/lib/main.dart","flutter_app/lib/shared/widgets/stat_card.dart","flutter_app/pigeons/haizhan_api.dart","flutter_app/pubspec.lock","flutter_app/pubspec.yaml","flutter_app/test/core/theme/theme_provider_test.dart","flutter_app/test/features/auth/login_screen_test.dart","flutter_app/test/features/chat/chat_screen_test.dart","flutter_app/test/features/contacts/contacts_screen_test.dart","flutter_app/test/features/home/home_screen_test.dart","flutter_app/test/features/knowledge/knowledge_screen_test.dart","flutter_app/test/features/profile/profile_screen_test.dart","flutter_app/test/features/settings/settings_screen_test.dart","flutter_app/test/features/stats/stats_screen_test.dart","flutter_app/test/integration/app_integration_test.dart","flutter_app/test/providers/auth_provider_test.dart","flutter_app/test/services/api_service_test.dart","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingView.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/TFLiteRecognizer.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/EnhancedCandidatesView.kt","ime-core/src/main/java/com/haizhan/ime/core/keyboard/KeyboardView.kt","ime-core/src/main/java/com/haizhan/ime/core/theme/DesignTokens.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerAdvancedTest.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/HandwritingManagerTest.kt","ios_keyboard/.build/.lock","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/HaizhanKeyboard.emit-module.d","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboard.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/output-file-map.json","ios_keyboard/.build/arm64-apple-macosx/debug/HaizhanKeyboardTests.build/sources","ios_keyboard/.build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/AIPanelView.swift.o-3JCH38GYDGXR8","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ContactMatcher.swift.o-2DEFMG7O4JYLM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/HapticManager.swift.o-1RR1AGSLF5OMM","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardEngine.swift.o-138QNNFN5L8T5","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-3DKAUVCODQU40","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardViewController.swift.o-Q3D13NLK8BXH","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1SAAN5KAN9TN9","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/PinyinSegmenter.swift.o-MFJITYIEOC0T","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ReplyService.swift.o-32WKBX1JUI0W6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-2OU33ZXZWSYE6","ios_keyboard/.build/arm64-apple-macosx/debug/index/store/v5/units/SettingsView.swift.o-127RM9EAP5VM6","ios_keyboard/.build/arm64-apple-macosx/debug/plugin-tools-description.json","ios_keyboard/.build/build.db","ios_keyboard/.build/debug.yaml","ios_keyboard/.build/index-build/.lock","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/HaizhanKeyboard.build/master.priors","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/description.json","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/KeyboardView.swift.o-ZCNKWX79V430","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/NineGridKeyboard.swift.o-1ZTZUBTR9D3N2","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/store/v5/units/ScreenshotManager.swift.o-1OSRMU5500GQS","ios_keyboard/.build/index-build/build.db","ios_keyboard/.build/index-build/debug.yaml","ios_keyboard/.build/plugin-tools.yaml","ios_keyboard/Sources/HaizhanKeyboard/AI/ScreenshotManager.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/KeyboardView.swift","ios_keyboard/Sources/HaizhanKeyboard/Views/NineGridKeyboard.swift","server/.npmrc","server/README.md","server/ai-service/Dockerfile","server/api-gateway/Dockerfile","server/api-gateway/package.json","server/api-gateway/src/modules/mobile-compat/mobile-compat.controller.ts","server/docker-compose.override.yml","server/docker-compose.yml","server/ocr-service/Dockerfile","shared/src/iosMain/kotlin/com/haizhan/ime/shared/auth/IosTokenStorage.kt","shared/src/iosMain/kotlin/com/haizhan/ime/shared/platform/DictionaryLoader.ios.kt","voice/src/main/java/com/haizhan/ime/voice/audio/AudioPipelineImpl.kt","voice/src/main/java/com/haizhan/ime/voice/recognition/SpeechRecognitionServiceImpl.kt"]},{"id":"15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","message":"perf(server): JWT用户缓存 + 缓存失效 + legacy-reply stub实现\n\n- JwtStrategy 添加 Redis 用户缓存 (5分钟TTL), 减少95%数据库查询\n- auth.service 在 updateProfile/logout/logoutAll 时主动失效缓存\n- users.service 在 update/updateStatus/toggleStatus/delete 时失效缓存\n- UsersModule 注入 RedisModule 支持缓存操作\n- legacy-reply markReplyUsed/submitReplyFeedback stub 实现完整请求解析和日志\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/15aae8c5e92b6e0c7dd53a7921212b68b8a1294b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:23:28+08:00","added":[],"removed":[],"modified":["server/ai-service/src/modules/ai/legacy-reply.controller.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/users/users.module.ts","server/api-gateway/src/modules/users/users.service.ts"]},{"id":"f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","message":"chore(server): 优化 Docker 基础设施配置\n\n- Redis: 修复空密码时 --requirepass 报错问题\n- Reranker Dockerfile: torch CPU 预安装 + 清华 PyPI 镜像加速\n- requirements.txt: 移除 --extra-index-url(已在 Dockerfile 中处理)\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/f19558e8e838bacc0f616f40c1ec10d9a5e4e9d5","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:16:10+08:00","added":[],"removed":[],"modified":["server/docker-compose.yml","server/model-services/reranker/Dockerfile","server/model-services/reranker/requirements.txt"]},{"id":"43712be12681e00bab0e3fed74c60ffa34fdc11d","message":"fix(server): 修复 5 个 CRITICAL + 5 个 HIGH 安全漏洞\n\nCRITICAL:\n- C1: 移除 JWT_SECRET/JWT_REFRESH_SECRET 弱默认值回退,启动时断言必须配置\n- C2: 开发后门 000000 需同时满足 NODE_ENV=development + ENABLE_DEV_BYPASS=true\n- C3: OCR recognizeFromUrl 添加 SSRF 防护(HTTPS-only + 内网地址黑名单)\n- C4: resetPassword 使用 crypto.randomBytes + bcrypt.hash 替代 Math.random + 明文\n- C5: ai-service auth.guard 添加 JWT alg 字段校验 + timingSafeEqual 签名比较\n\nHIGH:\n- H1: Redis KEYS 命令替换为 SCAN 游标迭代,避免生产环境阻塞\n- H2: knowledge.controller 添加 @UseGuards(JwtAuthGuard) 认证守卫\n- H4: updateProfile 禁止直接修改手机号,需独立验证流程\n- H6: Access Token 有效期从 7d 缩短至 1h\n- H7: JwtStrategy.validate 注入 RedisService 检查 token 黑名单\n\n测试: api-gateway 963 tests, ai-service 883 tests, ocr-service 87 tests 全部通过\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/43712be12681e00bab0e3fed74c60ffa34fdc11d","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-25T08:15:48+08:00","added":[],"removed":[],"modified":["server/ai-service/src/common/guards/auth.guard.ts","server/api-gateway/src/modules/auth/auth.service.ts","server/api-gateway/src/modules/auth/strategies/jwt.strategy.ts","server/api-gateway/src/modules/knowledge/knowledge.controller.ts","server/api-gateway/src/modules/users/users.service.ts","server/api-gateway/src/shared/redis/redis.service.ts","server/ocr-service/src/modules/ocr/ocr.service.ts"]}],"total_commits":0,"head_commit":{"id":"22125e0f1e435efabf81ec0007a1b56996cb0776","message":"fix(ime-core): 修复TFLiteRecognizerTest验证方式,改为验证可观察行为\n","url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android/commit/22125e0f1e435efabf81ec0007a1b56996cb0776","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-27T14:49:40+08:00","added":[],"removed":["ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/data.mdb","ios_keyboard/.build/index-build/arm64-apple-macosx/debug/index/db/v13/p95794--38ca5d/lock.mdb"],"modified":["ai-panel/src/main/java/com/haizhan/ime/panel/ui/components/PanelCommon.kt","ai-panel/src/test/java/com/haizhan/ime/panel/contact/ContactMatcherTest.kt","app/src/main/java/com/haizhan/ime/ui/management/ManagementViewModel.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/HandwritingManager.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/StrokeSegmenter.kt","ime-core/src/main/java/com/haizhan/ime/core/handwriting/UnifiedRecognitionEngine.kt","ime-core/src/test/java/com/haizhan/ime/core/handwriting/TFLiteRecognizerTest.kt","pnpm-lock.yaml","server/api-gateway/package.json","server/api-gateway/src/app.module.ts","server/api-gateway/src/main.ts","server/api-gateway/src/modules/ai/ai.module.ts","server/api-gateway/src/modules/ai/ai.service.ts","server/api-gateway/src/modules/knowledge/knowledge.service.ts","server/api-gateway/src/modules/ocr/ocr.module.ts","server/api-gateway/src/modules/ocr/ocr.service.ts","server/api-gateway/src/modules/settings/settings.module.ts","server/api-gateway/src/modules/settings/settings.service.ts"]},"repository":{"id":9,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haizhan-ime-android","full_name":"luoanwu/haizhan-ime-android","description":"嗨赞AI输入法 Android版","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":22552,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizhan-ime-android","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizhan-ime-android.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizhan-ime-android.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-27T15:27:17+08:00","updated_at":"2026-02-27T15:42:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
3
|
1772189679
|
1772189721
|
0
|
1772178609
|
1772189721
|
NULL
|
|
0
|
Edit
Delete
|
|
1349
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
ci.yml
|
1302
|
5
|
0
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
24
|
1772240166
|
1772240195
|
0
|
1772240164
|
1772240195
|
NULL
|
|
0
|
Edit
Delete
|
|
1350
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1303
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772240412
|
1772240413
|
0
|
1772240412
|
1772240413
|
NULL
|
|
0
|
Edit
Delete
|
|
1351
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1304
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772240712
|
1772240713
|
0
|
1772240712
|
1772240713
|
NULL
|
|
0
|
Edit
Delete
|
|
1352
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1305
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772241012
|
1772241013
|
0
|
1772241012
|
1772241013
|
NULL
|
|
0
|
Edit
Delete
|
|
1353
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1306
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772241312
|
1772241313
|
0
|
1772241312
|
1772241313
|
NULL
|
|
0
|
Edit
Delete
|
|
1354
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1307
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772241612
|
1772241613
|
0
|
1772241612
|
1772241613
|
NULL
|
|
0
|
Edit
Delete
|
|
1355
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1308
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772241912
|
1772241913
|
0
|
1772241912
|
1772241913
|
NULL
|
|
0
|
Edit
Delete
|
|
1356
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1309
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772242212
|
1772242213
|
0
|
1772242212
|
1772242213
|
NULL
|
|
0
|
Edit
Delete
|
|
1357
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1310
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772242512
|
1772242513
|
0
|
1772242512
|
1772242513
|
NULL
|
|
0
|
Edit
Delete
|
|
1358
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1311
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772242812
|
1772242813
|
0
|
1772242812
|
1772242813
|
NULL
|
|
0
|
Edit
Delete
|
|
1359
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1312
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772243112
|
1772243113
|
0
|
1772243112
|
1772243113
|
NULL
|
|
0
|
Edit
Delete
|
|
1360
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1313
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772243412
|
1772243413
|
0
|
1772243412
|
1772243413
|
NULL
|
|
0
|
Edit
Delete
|
|
1361
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1314
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772243712
|
1772243713
|
0
|
1772243712
|
1772243713
|
NULL
|
|
0
|
Edit
Delete
|
|
1362
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1315
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244012
|
1772244013
|
0
|
1772244012
|
1772244013
|
NULL
|
|
0
|
Edit
Delete
|
|
1363
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1316
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244312
|
1772244313
|
0
|
1772244312
|
1772244313
|
NULL
|
|
0
|
Edit
Delete
|
|
1364
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1317
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244612
|
1772244613
|
0
|
1772244612
|
1772244613
|
NULL
|
|
0
|
Edit
Delete
|
|
1365
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1318
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772244912
|
1772244913
|
0
|
1772244912
|
1772244913
|
NULL
|
|
0
|
Edit
Delete
|
|
1366
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1319
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772245212
|
1772245213
|
0
|
1772245212
|
1772245213
|
NULL
|
|
0
|
Edit
Delete
|
|
1367
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1320
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772245512
|
1772245513
|
0
|
1772245512
|
1772245513
|
NULL
|
|
0
|
Edit
Delete
|
|
1368
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1321
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772245812
|
1772245813
|
0
|
1772245812
|
1772245813
|
NULL
|
|
0
|
Edit
Delete
|
|
1369
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1322
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772246112
|
1772246113
|
0
|
1772246112
|
1772246113
|
NULL
|
|
0
|
Edit
Delete
|
|
1370
|
fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误
|
6
|
5
|
health-check.yml
|
1323
|
-2
|
43
|
refs/heads/main
|
79d594dd776b47b40e6329ed3f6cf53c2b18251f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2186d56d658fcaab3ff5ca5880742254dc8c4545","after":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/2186d56d658fcaab3ff5ca5880742254dc8c4545...79d594dd776b47b40e6329ed3f6cf53c2b18251f","commits":[{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]}],"total_commits":0,"head_commit":{"id":"79d594dd776b47b40e6329ed3f6cf53c2b18251f","message":"fix(migrations): 修复7个迁移文件确保 shadow DB 全量回放零错误\n\n修复内容:\n1. 20260125000001_enable_pgvector_and_agent_groups\n - 移除重复/冲突的索引定义,消除 shadow DB 回放时的语法冲突\n\n2. 20260126000000_sync_indexes_and_constraints\n - 对索引创建语句进行幂等性保护(IF NOT EXISTS)\n - 修复约束名称冲突问题\n\n3. 20260126000001_add_foreign_keys\n - 将外键添加操作包裹在 DO 块内\n - 检查列是否存在(如 parent_task_id)再添加外键,防止\"列不存在\"错误\n\n4. 20260214000002_expand_serial_number_sn_code_length\n - 先 DROP 依赖视图 v_entitlements_expiring\n - 执行 ALTER COLUMN sn_code TYPE VARCHAR(100)\n - 重建视图,解决\"列被视图使用不能修改类型\"错误\n\n5. 20260215000003_migrate_bank_accounts_from_json\n - 将迁移逻辑包裹在 DO 块内\n - 检查 config_key 列是否存在后再执行,兼容 baseline 和 live DB 的列名差异\n\n6. 20260219000000_add_agent_audit_tables\n - 在 CREATE TABLE agent_audit_logs 前添加条件 DROP\n - 检查旧表标记列 action_type 存在时 DROP CASCADE,解决旧表无 status 列的问题\n\n7. 20260223000000_add_performance_indexes\n - 将 idx_groupbuy_campaign_products_tenant_id_status 索引创建\n 包裹在 DO 块内,检查 status 列存在后再创建\n - groupbuy_campaign_products 建表时未含 status 列,条件跳过\n\n验证:migrate deploy 在空数据库全量回放成功,\"All migrations have been successfully applied.\"\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/79d594dd776b47b40e6329ed3f6cf53c2b18251f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-02-28T08:55:53+08:00","added":[],"removed":[],"modified":["backend/prisma/migrations/20260125000001_enable_pgvector_and_agent_groups/migration.sql","backend/prisma/migrations/20260126000000_sync_indexes_and_constraints/migration.sql","backend/prisma/migrations/20260126000001_add_foreign_keys/migration.sql","backend/prisma/migrations/20260214000002_expand_serial_number_sn_code_length/migration.sql","backend/prisma/migrations/20260215000003_migrate_bank_accounts_from_json/migration.sql","backend/prisma/migrations/20260219000000_add_agent_audit_tables/migration.sql","backend/prisma/migrations/20260223000000_add_performance_indexes/migration.sql"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":481311,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-02-28T08:55:14+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772246412
|
1772246413
|
0
|
1772246412
|
1772246413
|
NULL
|
|
0
|
Edit
Delete
|
|
2708
|
fix(prisma): add missing relation fields for ai_ag fix(prisma): add missing relation fields for ai_agent_im_integrations...
|
6
|
5
|
ci.yml
|
2654
|
5
|
0
|
refs/heads/main
|
0d944aa1701e20221a78605221f60c964883205b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b587de1b3ae3f8f5baf51cb49d5990dd4b269be1","after":"0d944aa1701e20221a78605221f60c964883205b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/b587de1b3ae3f8f5baf51cb49d5990dd4b269be1...0d944aa1701e20221a78605221f60c964883205b","commits":[{"id":"0d944aa1701e20221a78605221f60c964883205b","message":"fix(prisma): add missing relation fields for ai_agent_im_integrations\n\n- Add ai_agent_im_integrationsId field to ai_agent_im_conversation_states\n- Add ai_agent_im_integrationsId field to ai_agent_im_metrics\n- Fix relation references to use ai_agent_im_integrations model\n- Make relation fields optional to match nullable foreign keys\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0d944aa1701e20221a78605221f60c964883205b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-05T01:02:36+08:00","added":["backend/src/uat-proving.ts","frontend/src/api/modules/agent-group.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","backend/prisma/schema.prisma","backend/prisma/seeds/04-sales.ts","backend/prisma/seeds/11-ai-agents.ts","backend/prisma/seeds/12-channels-marketing.ts","backend/prisma/seeds/13-finance.ts","backend/prisma/seeds/14-diagnosis.ts","backend/prisma/seeds/15-groupbuy-community.ts","backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","backend/src/shared/utils/search-builder.ts","docs/RELEASE_NOTE_v1.0.0.md","frontend/src/api/index.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/views/analytics/DataHub.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/analyze-todos.ts","scripts/audit-fullstack-alignment.ts"]},{"id":"684756701bc4c4e88e71325710a43038ca23e66a","message":"Review contract workflow updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/684756701bc4c4e88e71325710a43038ca23e66a","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T23:58:13+08:00","added":[".qwen/skills/project-architecture.md",".qwen/skills/project-architecture/SKILL.md","backend/prisma/migrations/20260304000000_v110_debt_cleanup_schema/migration.sql","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/invoice.docs.ts"],"removed":["backend/src/modules/ar-ledger/ar-ledger.controller.ts","backend/src/modules/ar-ledger/ar-ledger.docs.ts","backend/src/modules/ar-ledger/ar-ledger.routes.ts","backend/src/modules/ar-ledger/ar-ledger.schema.ts","backend/src/modules/ar-ledger/ar-ledger.service.test.ts","backend/src/modules/ar-ledger/ar-ledger.service.ts","backend/src/modules/invoices/invoice.controller.ts","backend/src/modules/invoices/invoice.docs.ts","backend/src/modules/invoices/invoice.routes.ts","backend/src/modules/invoices/invoice.schema.ts","backend/src/modules/invoices/invoice.service.test.ts","backend/src/modules/invoices/invoice.service.ts"],"modified":["backend/prisma/schema.prisma","backend/src/consumers/index.ts","backend/src/consumers/marketing-workflow-executor.consumer.ts","backend/src/generated/prisma-model-zod.ts","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.routes.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/contracts/contract-enhanced.docs.ts","backend/src/modules/contracts/contract.controller.ts","backend/src/modules/contracts/contract.routes.ts","backend/src/modules/contracts/contract.schema.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/im/channels/wechat/wechat.handler.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/livestream-interactions/index.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/livestream-scripts/index.ts","backend/src/modules/marketing-content/marketing-content.logic.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/revenue/ar-ledger.controller.ts","backend/src/modules/revenue/ar-ledger.routes.ts","backend/src/modules/revenue/ar-ledger.schema.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/suppliers/supplier.service.ts","backend/src/modules/treasury/bank-account.service.ts","backend/src/shared/constants/events.ts","backend/src/shared/openapi/all-docs.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/cache-warmup.service.test.ts","backend/src/shared/services/cache-warmup.service.ts","frontend/src/api/modules/contracts.enhanced.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/contracts.ts","frontend/src/views/acquisition/components/TodoList.vue","frontend/src/views/acquisition/composables/useTodos.ts","frontend/src/views/analytics/OmnichannelDashboard.vue","frontend/src/views/analytics/SalesFunnel.vue","frontend/src/views/contracts/Detail.vue","frontend/src/views/contracts/Form.vue","frontend/src/views/contracts/Index.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","mobile/src/views/ContractDetail.vue","mobile/src/views/ContractForm.vue","mobile/src/views/Contracts.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","shared/src/types/models.ts"]},{"id":"8fdc73f0ca4f2d97dae8d3fabadc7877e5462705","message":"Align opportunity DTO shape\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8fdc73f0ca4f2d97dae8d3fabadc7877e5462705","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T22:58:08+08:00","added":[".claude/skills/juhi-revops-expert.skill",".gemini/skills/juhi-revops-expert/SKILL.md",".gemini/skills/juhi-revops-expert/assets/.gitkeep",".gemini/skills/juhi-revops-expert/references/architecture.md",".gemini/skills/juhi-revops-expert/references/example_reference.md",".gemini/skills/juhi-revops-expert/references/governance.md",".gemini/skills/juhi-revops-expert/references/modules.md",".gemini/skills/juhi-revops-expert/scripts/.gitkeep"],"removed":[],"modified":["backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/products/services/product.service.ts","frontend/src/api/modules/knowledge.ts","frontend/src/components/business/KnowledgeInserter.vue","frontend/src/components/business/calendar/MarketingCalendar.vue","frontend/src/components/process-designer/ProcessDesigner.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/opportunities/Index.vue"]},{"id":"1db4e5dc6d91c9873fa41be83a7529a11e3999cb","message":"Add entity detail fetch\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1db4e5dc6d91c9873fa41be83a7529a11e3999cb","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T22:34:55+08:00","added":[],"removed":[],"modified":["frontend/src/components/im/EntityCard.vue"]},{"id":"510365b17f0d8ab085369e669dc7d2d0fac2c70f","message":"Update TODO分析报告统计数据\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/510365b17f0d8ab085369e669dc7d2d0fac2c70f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T21:54:47+08:00","added":[],"removed":[],"modified":["TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","docs/RELEASE_NOTE_v1.0.0.md"]}],"total_commits":0,"head_commit":{"id":"0d944aa1701e20221a78605221f60c964883205b","message":"fix(prisma): add missing relation fields for ai_agent_im_integrations\n\n- Add ai_agent_im_integrationsId field to ai_agent_im_conversation_states\n- Add ai_agent_im_integrationsId field to ai_agent_im_metrics\n- Fix relation references to use ai_agent_im_integrations model\n- Make relation fields optional to match nullable foreign keys\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0d944aa1701e20221a78605221f60c964883205b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-05T01:02:36+08:00","added":["backend/src/uat-proving.ts","frontend/src/api/modules/agent-group.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","backend/prisma/schema.prisma","backend/prisma/seeds/04-sales.ts","backend/prisma/seeds/11-ai-agents.ts","backend/prisma/seeds/12-channels-marketing.ts","backend/prisma/seeds/13-finance.ts","backend/prisma/seeds/14-diagnosis.ts","backend/prisma/seeds/15-groupbuy-community.ts","backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","backend/src/shared/utils/search-builder.ts","docs/RELEASE_NOTE_v1.0.0.md","frontend/src/api/index.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/views/analytics/DataHub.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/analyze-todos.ts","scripts/audit-fullstack-alignment.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":1092391,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-05T01:00:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
24
|
1772643778
|
1772644201
|
0
|
1772643778
|
1772644201
|
NULL
|
|
0
|
Edit
Delete
|
|
2709
|
fix(prisma): add missing relation fields for ai_ag fix(prisma): add missing relation fields for ai_agent_im_integrations...
|
6
|
5
|
health-check.yml
|
2655
|
-2
|
51
|
refs/heads/main
|
0d944aa1701e20221a78605221f60c964883205b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b587de1b3ae3f8f5baf51cb49d5990dd4b269be1","after":"0d944aa1701e20221a78605221f60c964883205b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/b587de1b3ae3f8f5baf51cb49d5990dd4b269be1...0d944aa1701e20221a78605221f60c964883205b","commits":[{"id":"0d944aa1701e20221a78605221f60c964883205b","message":"fix(prisma): add missing relation fields for ai_agent_im_integrations\n\n- Add ai_agent_im_integrationsId field to ai_agent_im_conversation_states\n- Add ai_agent_im_integrationsId field to ai_agent_im_metrics\n- Fix relation references to use ai_agent_im_integrations model\n- Make relation fields optional to match nullable foreign keys\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0d944aa1701e20221a78605221f60c964883205b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-05T01:02:36+08:00","added":["backend/src/uat-proving.ts","frontend/src/api/modules/agent-group.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","backend/prisma/schema.prisma","backend/prisma/seeds/04-sales.ts","backend/prisma/seeds/11-ai-agents.ts","backend/prisma/seeds/12-channels-marketing.ts","backend/prisma/seeds/13-finance.ts","backend/prisma/seeds/14-diagnosis.ts","backend/prisma/seeds/15-groupbuy-community.ts","backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","backend/src/shared/utils/search-builder.ts","docs/RELEASE_NOTE_v1.0.0.md","frontend/src/api/index.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/views/analytics/DataHub.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/analyze-todos.ts","scripts/audit-fullstack-alignment.ts"]},{"id":"684756701bc4c4e88e71325710a43038ca23e66a","message":"Review contract workflow updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/684756701bc4c4e88e71325710a43038ca23e66a","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T23:58:13+08:00","added":[".qwen/skills/project-architecture.md",".qwen/skills/project-architecture/SKILL.md","backend/prisma/migrations/20260304000000_v110_debt_cleanup_schema/migration.sql","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/invoice.docs.ts"],"removed":["backend/src/modules/ar-ledger/ar-ledger.controller.ts","backend/src/modules/ar-ledger/ar-ledger.docs.ts","backend/src/modules/ar-ledger/ar-ledger.routes.ts","backend/src/modules/ar-ledger/ar-ledger.schema.ts","backend/src/modules/ar-ledger/ar-ledger.service.test.ts","backend/src/modules/ar-ledger/ar-ledger.service.ts","backend/src/modules/invoices/invoice.controller.ts","backend/src/modules/invoices/invoice.docs.ts","backend/src/modules/invoices/invoice.routes.ts","backend/src/modules/invoices/invoice.schema.ts","backend/src/modules/invoices/invoice.service.test.ts","backend/src/modules/invoices/invoice.service.ts"],"modified":["backend/prisma/schema.prisma","backend/src/consumers/index.ts","backend/src/consumers/marketing-workflow-executor.consumer.ts","backend/src/generated/prisma-model-zod.ts","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.routes.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/contracts/contract-enhanced.docs.ts","backend/src/modules/contracts/contract.controller.ts","backend/src/modules/contracts/contract.routes.ts","backend/src/modules/contracts/contract.schema.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/im/channels/wechat/wechat.handler.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/livestream-interactions/index.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/livestream-scripts/index.ts","backend/src/modules/marketing-content/marketing-content.logic.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/revenue/ar-ledger.controller.ts","backend/src/modules/revenue/ar-ledger.routes.ts","backend/src/modules/revenue/ar-ledger.schema.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/suppliers/supplier.service.ts","backend/src/modules/treasury/bank-account.service.ts","backend/src/shared/constants/events.ts","backend/src/shared/openapi/all-docs.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/cache-warmup.service.test.ts","backend/src/shared/services/cache-warmup.service.ts","frontend/src/api/modules/contracts.enhanced.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/contracts.ts","frontend/src/views/acquisition/components/TodoList.vue","frontend/src/views/acquisition/composables/useTodos.ts","frontend/src/views/analytics/OmnichannelDashboard.vue","frontend/src/views/analytics/SalesFunnel.vue","frontend/src/views/contracts/Detail.vue","frontend/src/views/contracts/Form.vue","frontend/src/views/contracts/Index.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","mobile/src/views/ContractDetail.vue","mobile/src/views/ContractForm.vue","mobile/src/views/Contracts.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","shared/src/types/models.ts"]},{"id":"8fdc73f0ca4f2d97dae8d3fabadc7877e5462705","message":"Align opportunity DTO shape\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8fdc73f0ca4f2d97dae8d3fabadc7877e5462705","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T22:58:08+08:00","added":[".claude/skills/juhi-revops-expert.skill",".gemini/skills/juhi-revops-expert/SKILL.md",".gemini/skills/juhi-revops-expert/assets/.gitkeep",".gemini/skills/juhi-revops-expert/references/architecture.md",".gemini/skills/juhi-revops-expert/references/example_reference.md",".gemini/skills/juhi-revops-expert/references/governance.md",".gemini/skills/juhi-revops-expert/references/modules.md",".gemini/skills/juhi-revops-expert/scripts/.gitkeep"],"removed":[],"modified":["backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/products/services/product.service.ts","frontend/src/api/modules/knowledge.ts","frontend/src/components/business/KnowledgeInserter.vue","frontend/src/components/business/calendar/MarketingCalendar.vue","frontend/src/components/process-designer/ProcessDesigner.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/opportunities/Index.vue"]},{"id":"1db4e5dc6d91c9873fa41be83a7529a11e3999cb","message":"Add entity detail fetch\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1db4e5dc6d91c9873fa41be83a7529a11e3999cb","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T22:34:55+08:00","added":[],"removed":[],"modified":["frontend/src/components/im/EntityCard.vue"]},{"id":"510365b17f0d8ab085369e669dc7d2d0fac2c70f","message":"Update TODO分析报告统计数据\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/510365b17f0d8ab085369e669dc7d2d0fac2c70f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T21:54:47+08:00","added":[],"removed":[],"modified":["TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","docs/RELEASE_NOTE_v1.0.0.md"]}],"total_commits":0,"head_commit":{"id":"0d944aa1701e20221a78605221f60c964883205b","message":"fix(prisma): add missing relation fields for ai_agent_im_integrations\n\n- Add ai_agent_im_integrationsId field to ai_agent_im_conversation_states\n- Add ai_agent_im_integrationsId field to ai_agent_im_metrics\n- Fix relation references to use ai_agent_im_integrations model\n- Make relation fields optional to match nullable foreign keys\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0d944aa1701e20221a78605221f60c964883205b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-05T01:02:36+08:00","added":["backend/src/uat-proving.ts","frontend/src/api/modules/agent-group.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","backend/prisma/schema.prisma","backend/prisma/seeds/04-sales.ts","backend/prisma/seeds/11-ai-agents.ts","backend/prisma/seeds/12-channels-marketing.ts","backend/prisma/seeds/13-finance.ts","backend/prisma/seeds/14-diagnosis.ts","backend/prisma/seeds/15-groupbuy-community.ts","backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","backend/src/shared/utils/search-builder.ts","docs/RELEASE_NOTE_v1.0.0.md","frontend/src/api/index.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/views/analytics/DataHub.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/analyze-todos.ts","scripts/audit-fullstack-alignment.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":1092391,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-05T01:00:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772644195
|
1772644195
|
0
|
1772643932
|
1772644195
|
NULL
|
|
0
|
Edit
Delete
|
|
2710
|
fix(prisma): add missing relation fields for ai_ag fix(prisma): add missing relation fields for ai_agent_im_integrations...
|
6
|
5
|
health-check.yml
|
2656
|
-2
|
51
|
refs/heads/main
|
0d944aa1701e20221a78605221f60c964883205b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b587de1b3ae3f8f5baf51cb49d5990dd4b269be1","after":"0d944aa1701e20221a78605221f60c964883205b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/b587de1b3ae3f8f5baf51cb49d5990dd4b269be1...0d944aa1701e20221a78605221f60c964883205b","commits":[{"id":"0d944aa1701e20221a78605221f60c964883205b","message":"fix(prisma): add missing relation fields for ai_agent_im_integrations\n\n- Add ai_agent_im_integrationsId field to ai_agent_im_conversation_states\n- Add ai_agent_im_integrationsId field to ai_agent_im_metrics\n- Fix relation references to use ai_agent_im_integrations model\n- Make relation fields optional to match nullable foreign keys\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0d944aa1701e20221a78605221f60c964883205b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-05T01:02:36+08:00","added":["backend/src/uat-proving.ts","frontend/src/api/modules/agent-group.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","backend/prisma/schema.prisma","backend/prisma/seeds/04-sales.ts","backend/prisma/seeds/11-ai-agents.ts","backend/prisma/seeds/12-channels-marketing.ts","backend/prisma/seeds/13-finance.ts","backend/prisma/seeds/14-diagnosis.ts","backend/prisma/seeds/15-groupbuy-community.ts","backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","backend/src/shared/utils/search-builder.ts","docs/RELEASE_NOTE_v1.0.0.md","frontend/src/api/index.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/views/analytics/DataHub.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/analyze-todos.ts","scripts/audit-fullstack-alignment.ts"]},{"id":"684756701bc4c4e88e71325710a43038ca23e66a","message":"Review contract workflow updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/684756701bc4c4e88e71325710a43038ca23e66a","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T23:58:13+08:00","added":[".qwen/skills/project-architecture.md",".qwen/skills/project-architecture/SKILL.md","backend/prisma/migrations/20260304000000_v110_debt_cleanup_schema/migration.sql","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/invoice.docs.ts"],"removed":["backend/src/modules/ar-ledger/ar-ledger.controller.ts","backend/src/modules/ar-ledger/ar-ledger.docs.ts","backend/src/modules/ar-ledger/ar-ledger.routes.ts","backend/src/modules/ar-ledger/ar-ledger.schema.ts","backend/src/modules/ar-ledger/ar-ledger.service.test.ts","backend/src/modules/ar-ledger/ar-ledger.service.ts","backend/src/modules/invoices/invoice.controller.ts","backend/src/modules/invoices/invoice.docs.ts","backend/src/modules/invoices/invoice.routes.ts","backend/src/modules/invoices/invoice.schema.ts","backend/src/modules/invoices/invoice.service.test.ts","backend/src/modules/invoices/invoice.service.ts"],"modified":["backend/prisma/schema.prisma","backend/src/consumers/index.ts","backend/src/consumers/marketing-workflow-executor.consumer.ts","backend/src/generated/prisma-model-zod.ts","backend/src/main.ts","backend/src/modules/ai-agents/ai-agent-im.types.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-agents/ai-agent.routes.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/contracts/contract-enhanced.docs.ts","backend/src/modules/contracts/contract.controller.ts","backend/src/modules/contracts/contract.routes.ts","backend/src/modules/contracts/contract.schema.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/dashboard/dashboard.service.ts","backend/src/modules/dictionaries/dictionary.docs.ts","backend/src/modules/im/channels/wechat/wechat.handler.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/modules/livestream-interactions/index.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/livestream-scripts/index.ts","backend/src/modules/marketing-content/marketing-content.logic.ts","backend/src/modules/menus/menu.docs.ts","backend/src/modules/omnichannel-dashboard/omnichannel-dashboard.controller.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/revenue/ar-ledger.controller.ts","backend/src/modules/revenue/ar-ledger.routes.ts","backend/src/modules/revenue/ar-ledger.schema.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/suppliers/supplier.service.ts","backend/src/modules/treasury/bank-account.service.ts","backend/src/shared/constants/events.ts","backend/src/shared/openapi/all-docs.ts","backend/src/shared/services/base.service.ts","backend/src/shared/services/cache-warmup.service.test.ts","backend/src/shared/services/cache-warmup.service.ts","frontend/src/api/modules/contracts.enhanced.ts","frontend/src/api/modules/contracts.ts","frontend/src/api/modules/quotes.ts","frontend/src/stores/contracts.ts","frontend/src/views/acquisition/components/TodoList.vue","frontend/src/views/acquisition/composables/useTodos.ts","frontend/src/views/analytics/OmnichannelDashboard.vue","frontend/src/views/analytics/SalesFunnel.vue","frontend/src/views/contracts/Detail.vue","frontend/src/views/contracts/Form.vue","frontend/src/views/contracts/Index.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/quotes/Editor.vue","frontend/src/views/quotes/Form.vue","frontend/src/views/quotes/Index.vue","mobile/src/views/ContractDetail.vue","mobile/src/views/ContractForm.vue","mobile/src/views/Contracts.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","shared/src/types/models.ts"]},{"id":"8fdc73f0ca4f2d97dae8d3fabadc7877e5462705","message":"Align opportunity DTO shape\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/8fdc73f0ca4f2d97dae8d3fabadc7877e5462705","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T22:58:08+08:00","added":[".claude/skills/juhi-revops-expert.skill",".gemini/skills/juhi-revops-expert/SKILL.md",".gemini/skills/juhi-revops-expert/assets/.gitkeep",".gemini/skills/juhi-revops-expert/references/architecture.md",".gemini/skills/juhi-revops-expert/references/example_reference.md",".gemini/skills/juhi-revops-expert/references/governance.md",".gemini/skills/juhi-revops-expert/references/modules.md",".gemini/skills/juhi-revops-expert/scripts/.gitkeep"],"removed":[],"modified":["backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/products/services/product.service.ts","frontend/src/api/modules/knowledge.ts","frontend/src/components/business/KnowledgeInserter.vue","frontend/src/components/business/calendar/MarketingCalendar.vue","frontend/src/components/process-designer/ProcessDesigner.vue","frontend/src/views/opportunities/Form.vue","frontend/src/views/opportunities/Index.vue"]},{"id":"1db4e5dc6d91c9873fa41be83a7529a11e3999cb","message":"Add entity detail fetch\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/1db4e5dc6d91c9873fa41be83a7529a11e3999cb","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T22:34:55+08:00","added":[],"removed":[],"modified":["frontend/src/components/im/EntityCard.vue"]},{"id":"510365b17f0d8ab085369e669dc7d2d0fac2c70f","message":"Update TODO分析报告统计数据\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/510365b17f0d8ab085369e669dc7d2d0fac2c70f","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-04T21:54:47+08:00","added":[],"removed":[],"modified":["TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","docs/RELEASE_NOTE_v1.0.0.md"]}],"total_commits":0,"head_commit":{"id":"0d944aa1701e20221a78605221f60c964883205b","message":"fix(prisma): add missing relation fields for ai_agent_im_integrations\n\n- Add ai_agent_im_integrationsId field to ai_agent_im_conversation_states\n- Add ai_agent_im_integrationsId field to ai_agent_im_metrics\n- Fix relation references to use ai_agent_im_integrations model\n- Make relation fields optional to match nullable foreign keys\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0d944aa1701e20221a78605221f60c964883205b","author":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"laoluojuhai","email":"laoluojuhai@users.noreply.github.com","username":""},"verification":null,"timestamp":"2026-03-05T01:02:36+08:00","added":["backend/src/uat-proving.ts","frontend/src/api/modules/agent-group.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","TODO-ANALYSIS-REPORT.md","TODO-GITHUB-ISSUES.md","backend/prisma/schema.prisma","backend/prisma/seeds/04-sales.ts","backend/prisma/seeds/11-ai-agents.ts","backend/prisma/seeds/12-channels-marketing.ts","backend/prisma/seeds/13-finance.ts","backend/prisma/seeds/14-diagnosis.ts","backend/prisma/seeds/15-groupbuy-community.ts","backend/src/consumers/ai-agent-task-processor.consumer.ts","backend/src/consumers/knowledge-vector.consumer.ts","backend/src/modules/ai-agents/ai-agent.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/im/intent-analyzer.service.ts","backend/src/modules/livestream-interactions/livestream-realtime.service.ts","backend/src/modules/omnichannel-data-hub/omnichannel-data-hub.controller.ts","backend/src/modules/products/services/category.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/services/base.service.ts","backend/src/shared/utils/crud.ts","backend/src/shared/utils/search-builder.ts","docs/RELEASE_NOTE_v1.0.0.md","frontend/src/api/index.ts","frontend/src/api/modules/omnichannel-data-hub.ts","frontend/src/views/analytics/DataHub.vue","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","scripts/analyze-todos.ts","scripts/audit-fullstack-alignment.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"parent":null,"mirror":false,"size":1092391,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-03-05T01:00:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","repo_transfer":null},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatars/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
1
|
3
|
1772644233
|
1772644233
|
0
|
1772644232
|
1772644233
|
NULL
|
|
0
|
Edit
Delete
|
|
10528
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
e2e-tests.yml
|
10452
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775097114
|
1775097303
|
0
|
1775097114
|
1775098414
|
|
|
0
|
Edit
Delete
|
|
10529
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
test-pipeline.yml
|
10453
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775097304
|
1775097365
|
0
|
1775097115
|
1775098674
|
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
|
|
10530
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
test-report.yml
|
10454
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-02T06:59:18+08:00","updated_at":"2026-04-02T06:59:18+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10528,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10528","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10528","display_title":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10452,"head_sha":"624893ef324e57874ecb721dfd5539eb58d49b8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T10:31:54+08:00","completed_at":"2026-04-02T10:35:03+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1775097366
|
1775097396
|
0
|
1775097303
|
1775098430
|
|
|
0
|
Edit
Delete
|
|
10531
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10455
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775098415
|
1775098415
|
0
|
1775097318
|
1775098415
|
|
|
0
|
Edit
Delete
|
|
10532
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
deploy.yml
|
10456
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-02T06:59:18+08:00","updated_at":"2026-04-02T06:59:18+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10529,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10529","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10529","display_title":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10453,"head_sha":"624893ef324e57874ecb721dfd5539eb58d49b8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T10:35:04+08:00","completed_at":"2026-04-02T10:36:05+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
26
|
1775098417
|
1775098641
|
0
|
1775097365
|
1775098641
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
10533
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10457
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775098432
|
1775098432
|
0
|
1775097618
|
1775098432
|
|
|
0
|
Edit
Delete
|
|
10534
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10458
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775098434
|
1775098435
|
0
|
1775097918
|
1775098435
|
|
|
0
|
Edit
Delete
|
|
10535
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10459
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775098436
|
1775098437
|
0
|
1775098218
|
1775098437
|
|
|
0
|
Edit
Delete
|
|
10536
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
test-report.yml
|
10460
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-02T06:59:18+08:00","updated_at":"2026-04-02T06:59:18+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10528,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10528","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10528","display_title":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10452,"head_sha":"624893ef324e57874ecb721dfd5539eb58d49b8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T10:31:54+08:00","completed_at":"2026-04-02T10:35:03+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1775098438
|
1775098529
|
0
|
1775098415
|
1775098638
|
|
|
0
|
Edit
Delete
|
|
10537
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10461
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775098632
|
1775098632
|
0
|
1775098518
|
1775098632
|
|
|
0
|
Edit
Delete
|
|
10538
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
deploy.yml
|
10462
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-02T06:59:18+08:00","updated_at":"2026-04-02T06:59:18+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10529,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10529","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10529","display_title":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10453,"head_sha":"624893ef324e57874ecb721dfd5539eb58d49b8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T10:35:04+08:00","completed_at":"2026-04-02T10:36:05+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
17
|
1775098642
|
1775098675
|
0
|
1775098641
|
1775098676
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
10539
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
deploy.yml
|
10463
|
5
|
0
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-02T06:59:18+08:00","updated_at":"2026-04-02T06:59:18+08:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":10529,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/10529","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/10529","display_title":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":10453,"head_sha":"624893ef324e57874ecb721dfd5539eb58d49b8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-02T10:35:04+08:00","completed_at":"2026-04-02T10:36:05+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5204315,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-02T10:31:56+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
40
|
1775098676
|
1775098727
|
0
|
1775098676
|
1775098727
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "false"
...
|
deploy-refs/heads/main
|
0
|
Edit
Delete
|
|
10540
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10464
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775098820
|
1775098820
|
0
|
1775098818
|
1775098820
|
|
|
0
|
Edit
Delete
|
|
10541
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10465
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775099119
|
1775099119
|
0
|
1775099118
|
1775099119
|
|
|
0
|
Edit
Delete
|
|
10542
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10466
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775099419
|
1775099419
|
0
|
1775099418
|
1775099419
|
|
|
0
|
Edit
Delete
|
|
10543
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10467
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775099719
|
1775099719
|
0
|
1775099718
|
1775099719
|
|
|
0
|
Edit
Delete
|
|
10544
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10468
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775100019
|
1775100019
|
0
|
1775100018
|
1775100019
|
|
|
0
|
Edit
Delete
|
|
10545
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10469
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775100319
|
1775100319
|
0
|
1775100318
|
1775100319
|
|
|
0
|
Edit
Delete
|
|
10546
|
fix(schema): annotate 47 Prisma String? fields + f fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E...
|
6
|
5
|
health-check.yml
|
10470
|
-2
|
253
|
refs/heads/main
|
624893ef324e57874ecb721dfd5539eb58d49b8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7212eb23c82b2ecae9ea1f22fa928fc6382f842d","after":"624893ef324e57874ecb721dfd5539eb58d49b8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7212eb23c82b2ecae9ea1f22fa928fc6382f842d...624893ef324e57874ecb721dfd5539eb58d49b8e","commits":[{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.ts"]},{"id":"ad579baf8043eb72ed26d4b2750a83bf39888acf","message":"Advance harness governance and align enum sources\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad579baf8043eb72ed26d4b2750a83bf39888acf","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-02T06:46:31+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","frontend/src/api/modules/channels.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/suppliers/Detail.vue","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","scripts/harness/report.ts"]},{"id":"a11d601814a16c9221a3a43172d3ba80e47ab5d8","message":"chore: refresh outbox and harness dashboard reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a11d601814a16c9221a3a43172d3ba80e47ab5d8","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-02T06:45:42+08:00","added":[],"removed":[],"modified":["reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json"]},{"id":"2b5617f7972d9e2e8d8714659d24a0629a387ff9","message":"chore: clean up E2E reports and sync audit scripts\n\n- Remove stale playwright report artifacts\n- Update outbox-atomicity audit script\n- Refresh E2E auth session\n- Add new E2E test fixtures\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/2b5617f7972d9e2e8d8714659d24a0629a387ff9","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-02T06:45:27+08:00","added":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/ui-lead-created.png"],"removed":["e2e/playwright-report/data/08814a62bc42dda0a801567cc9d4c6cf9108644f.png","e2e/playwright-report/data/08ae5320caa7ecb0943f1b38c4c138f60d9004c3.md","e2e/playwright-report/data/1cba8ad03f3e633e0a9b010b05e07c93a5dfc44a.png","e2e/playwright-report/data/1d43f546e96c93650a26552a100c1855a88d5458.png","e2e/playwright-report/data/5fb52d57fb25da788351f81f13f38f47b49d8b1f.png","e2e/playwright-report/data/6f0eb64dd0e32bcdd5c42b43e2c9b28a889500f2.md","e2e/playwright-report/data/74e23d758057f5aed55e9fbf3ece31b9d3acea58.png","e2e/playwright-report/data/9ab0f255905482fca6d669a755fd9b960bb373fc.png","e2e/playwright-report/data/a5d205df4f843ab178a43626f09d16d3c119f64b.png","e2e/playwright-report/data/a9144dba21c9cb4f71a0e572a1c614ba88aeecc3.png","e2e/playwright-report/data/b3cf18b7fc81abe0483c5b53d8d595ec25d48bf2.png","e2e/playwright-report/data/b6880efa02d1267768bc45dce241b63de538c889.md","e2e/playwright-report/data/c88450e727adf63687ab82953a1feb25d41783b6.png","e2e/playwright-report/data/d22ec590fa752ce8d4e445623611badd1dd32aec.png","e2e/playwright-report/data/d25303c48b8928a147c383e3a15ad19f7ca9f0ca.md","e2e/playwright-report/data/db687a8cb0ddb131fe43b1624363672704a90635.png","e2e/playwright-report/data/e9bf62f6a8fb0b7f4fd2adcf360c6c709f3f0c3c.png","e2e/playwright-report/data/fbba64b2ea6842818d1bc5425e078f1688c87111.png","e2e/playwright-report/data/fec0773e4a656970b1bfa0f108a88929a9099f30.png","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-并发操作-同一订单并发支付不应导致重复扣款-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建工单---缺少主题应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-必填字段验证-创建线索---缺少公司名称应返回-4xx-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-0f9bf--to-Renewal-Phase-2-线索转化为商机-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-UI-创建线索-通过-UI-表单创建新线索-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-合同列表页可正常访问-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-245f6-act-合同-回退场景-submit-→-reject-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3594e--→-支付-→-发货-→-交付-→-completed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-3b128-ding-sign-→-signed-→-active-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-66015-合同-终止场景-active-→-terminated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-7ae5b--取消场景-confirmed-→-cancelled-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-94d5a-ted-→-qualified-→-converted-chromium/test-failed-1.png"],"modified":["backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-线索.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/adapters.ts","frontend/src/api/modules/approvals.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/channels.ts","frontend/src/api/modules/commissions.ts","frontend/src/api/modules/cpq.ts","frontend/src/api/modules/cross-domain-funnel.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/event-subscriptions.ts","frontend/src/api/modules/finance.ts","frontend/src/api/modules/financial-reports.ts","frontend/src/api/modules/groupbuy-platforms.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/landing-pages.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/partner-customers.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/api/modules/quotes.ts","frontend/src/api/modules/renewal-tasks.ts","frontend/src/api/modules/reports.ts","frontend/src/api/modules/scheduled-jobs.ts","frontend/src/api/modules/segments.ts","frontend/src/api/modules/sms-marketing.ts","frontend/src/api/modules/social-interactions.ts","frontend/src/api/modules/stage-knowledge.ts","frontend/src/api/modules/supply-chain.ts","frontend/src/api/modules/web-tracking.ts","frontend/src/types/enums.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/cross-domain-funnel/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/reports/Schedules.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/web-tracking/Index.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"5276d7aba4c8e857b2fb6c26eb6445143fbf9802","message":"fix: resolve remaining field-payload ERRORs and update audit reports\n\n- Fix 3 remaining field-payload ERROR (commissions/payments/price-books\n createSchema optional→required alignment)\n- Update geo-pois service and tests\n- Refresh all audit reports (enum/field-payload/outbox/type-debt)\n- Update governance docs and project documentation\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\n\nfield-payload: ERROR 3→0, WARNING 61 (stable)\nenum: ERROR 5 (audit mismatch), WARNING 14\nOutbox B-class: 3 (all passing tx — audit false positive)\nNon-test as any: 0 (all remaining are comments only)\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5276d7aba4c8e857b2fb6c26eb6445143fbf9802","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-02T06:45:05+08:00","added":["backend/tests/api/events.test.ts","backend/tests/api/store-performance.test.ts","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-02.md","docs/reports/view-audit-domains/a2-finance-center-2026-04-02.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-02.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-02.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-02.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-02.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-02.md","docs/reports/view-audit-domains/a8-system-center-2026-04-02.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-02.md","docs/reports/view-audit-full-matrix-2026-04-02.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/geo-pois/geo-poi.service.test.ts","backend/src/modules/geo-pois/geo-poi.service.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/price-books/price-definition.schema.ts","backend/tests/api/community-analytics.test.ts","backend/tests/api/contract-templates.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/process-designer.test.ts","backend/tests/api/reconciliation.test.ts","backend/tests/api/store-ops-access.test.ts","docs/governance/baseline-and-experience.md","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-changed.latest.json","reports/harness-dashboard.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-field-payload.ts","scripts/harness/audit-registry.ts","scripts/harness/report.ts"]}],"total_commits":0,"head_commit":{"id":"624893ef324e57874ecb721dfd5539eb58d49b8e","message":"fix(schema): annotate 47 Prisma String? fields + fix assembly types + sync E2E\n\n- Add @db.Text (18) and @db.VarChar(2000) (29) to all bare String?\n fields, eliminating 47 pre-commit Prisma warnings\n- Fix assembly.controller.ts 10 type errors using Parameters\u003c\u003e utility\n- Sync E2E test results and playwright reports\n- Update audit reports and governance docs\n\nGate: tsc 0 | vue-tsc 0 | 408 files 6410 tests 100%\nPre-commit Prisma warnings: 47 → 0\n\nCo-Authored-By: Claude Opus 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/624893ef324e57874ecb721dfd5539eb58d49b8e","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-02T06:59:18+08:00","added":["e2e/playwright-report/data/120f8592f0449e7d84ecbb98535f92dbd5c055df.png","e2e/playwright-report/data/6a680276f19eb94c37efac2217eb10187216fc8d.png","e2e/playwright-report/data/8f49f37de62cf7c3163a26e1c24fc10fb4addae7.md","e2e/playwright-report/data/aefe43d14b4c42045c882db4c112b0f5536f7381.md","e2e/playwright-report/data/b1b4116ac344e1e9335a1c933cb1166e6b548ead.png","e2e/playwright-report/data/b6c0c18844d3465d82e2f6c53316a066c88520fb.png","e2e/playwright-report/data/c71aa4c93404526c84e47bdb8f0880a143981fd2.png","e2e/playwright-report/data/cda80cbeb2e5b4caea4520ec564ecbdffe143f15.md","e2e/playwright-report/data/f5045aa7d74062d1dd8eae8d5bd3ceb77b1bbca9.png","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/error-context.md","e2e/test-results/p0-chain-boundary-guards-边界防御-认证防护-携带无效-Token-的请求应返回-401-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-d90a9-o-Renewal-Phase-1-线索创建与状态推进-chromium/test-failed-1.png","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-链路-各实体列表页冒烟检查-线索列表页可正常访问-chromium/test-failed-1.png"],"removed":["e2e/playwright-report/data/2111db4e41556fe8e1108550a04cbbad75b708c0.png","e2e/playwright-report/data/2af1dd80384263f1f57f58a8ecd2cfedfcb458a8.png","e2e/playwright-report/data/36dea1a1272fecba22cd8a9b0586187f652d7fa5.png","e2e/playwright-report/data/961cd6ebf7599345be880ac56814fced7759480c.md","e2e/playwright-report/data/9cc763f1d3bab80f466503397a28732bada2c5ee.png","e2e/playwright-report/data/bb27b7fbaebd43468a2f2467a3002ada456d4df2.png","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/error-context.md","e2e/test-results/p0-chain-lead-to-cash-P0-核-48c0b-Renewal-Phase-5-创建订单并走完履约流程-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-d4c71-created-→-支付-→-发货-→-交付-→-完成-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase1-lead-qualified.png","e2e/test-results/p0-chain/phase2-opportunity-created.png","e2e/test-results/p0-chain/phase3-quote-accepted.png","e2e/test-results/p0-chain/phase4-contract-active.png","e2e/test-results/p0-chain/smoke-线索.png"],"modified":[".claude/skills/juhi/harness.md","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/schema.prisma","backend/scripts/audit-outbox-atomicity.ts","backend/src/modules/assembly/assembly.controller.ts","backend/src/modules/commissions/commission.schema.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/tickets/ticket.service.ts","backend/tests/api/setup.ts","backend/tests/api/stores.test.ts","backend/tests/api/test-context.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","e2e/helpers/p0-chain.helper.ts","e2e/playwright-report/index.html","e2e/test-results/.last-run.json","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-2fb95-rogress-→-resolved-→-closed-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-83737-级场景-in-progress-→-escalated-chromium/test-failed-1.png","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/error-context.md","e2e/test-results/p0-chain-state-transitions-9cf46-景-closed-→-reopened(如果业务支持)-chromium/test-failed-1.png","e2e/test-results/p0-chain/phase0-ready.png","e2e/test-results/p0-chain/smoke-合同.png","e2e/test-results/p0-chain/smoke-商机.png","e2e/test-results/p0-chain/smoke-工单.png","e2e/test-results/p0-chain/smoke-报价.png","e2e/test-results/p0-chain/smoke-订单.png","e2e/test-results/p0-chain/ui-lead-created.png","e2e/test-results/p0-chain/ui-lead-search.png","e2e/test-results/p0-chain/ui-order-list.png","e2e/test-results/results.json","e2e/tests/auth/ai-agent-employee-smoke.spec.ts","frontend/src/api/modules/bom.ts","frontend/src/api/modules/marketing-chatbot.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/price-books.ts","frontend/src/api/modules/purchase-orders.ts","frontend/src/composables/useRouteSyncedTab.ts","frontend/src/views/cpq/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/groupbuy-platforms/Form.vue","frontend/src/views/leads/useLeadCenterContext.ts","frontend/src/views/marketing-chatbot/composables/useChatbot.ts","frontend/src/views/payment-plans/Index.vue","frontend/src/views/payments/Index.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/purchase-orders/Form.vue","frontend/src/views/social-analytics/__tests__/social-analytics-g4.smoke.test.ts","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-field-payload.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":5197876,"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-02T02:05:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1775100619
|
1775100619
|
0
|
1775100618
|
1775100619
|
|
|
0
|
Edit
Delete
|