|
17687
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17608
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777206651
|
1777206651
|
0
|
1777206650
|
1777206651
|
|
|
0
|
Edit
Delete
|
|
17688
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17609
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777206951
|
1777206951
|
0
|
1777206950
|
1777206951
|
|
|
0
|
Edit
Delete
|
|
17689
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17610
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777207251
|
1777207251
|
0
|
1777207250
|
1777207251
|
|
|
0
|
Edit
Delete
|
|
17690
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17611
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777207551
|
1777207551
|
0
|
1777207550
|
1777207551
|
|
|
0
|
Edit
Delete
|
|
17691
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17612
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777207851
|
1777207851
|
0
|
1777207850
|
1777207851
|
|
|
0
|
Edit
Delete
|
|
17692
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17613
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777208151
|
1777208151
|
0
|
1777208150
|
1777208151
|
|
|
0
|
Edit
Delete
|
|
17693
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17614
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777208451
|
1777208451
|
0
|
1777208450
|
1777208451
|
|
|
0
|
Edit
Delete
|
|
17694
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17615
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777208751
|
1777208751
|
0
|
1777208750
|
1777208751
|
|
|
0
|
Edit
Delete
|
|
17695
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17616
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777209051
|
1777209051
|
0
|
1777209050
|
1777209051
|
|
|
0
|
Edit
Delete
|
|
17696
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17617
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777209351
|
1777209351
|
0
|
1777209350
|
1777209351
|
|
|
0
|
Edit
Delete
|
|
17697
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17618
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777209651
|
1777209651
|
0
|
1777209650
|
1777209651
|
|
|
0
|
Edit
Delete
|
|
17698
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17619
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777209951
|
1777209951
|
0
|
1777209950
|
1777209951
|
|
|
0
|
Edit
Delete
|
|
17699
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17620
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777210251
|
1777210251
|
0
|
1777210250
|
1777210251
|
|
|
0
|
Edit
Delete
|
|
17700
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17621
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777210551
|
1777210551
|
0
|
1777210550
|
1777210551
|
|
|
0
|
Edit
Delete
|
|
17701
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17622
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777210851
|
1777210851
|
0
|
1777210850
|
1777210851
|
|
|
0
|
Edit
Delete
|
|
17702
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17623
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777211151
|
1777211151
|
0
|
1777211150
|
1777211151
|
|
|
0
|
Edit
Delete
|
|
17703
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17624
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777211451
|
1777211451
|
0
|
1777211450
|
1777211451
|
|
|
0
|
Edit
Delete
|
|
17704
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17625
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777211751
|
1777211751
|
0
|
1777211750
|
1777211751
|
|
|
0
|
Edit
Delete
|
|
17705
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17626
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777212051
|
1777212051
|
0
|
1777212050
|
1777212051
|
|
|
0
|
Edit
Delete
|
|
17706
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17627
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777212351
|
1777212351
|
0
|
1777212350
|
1777212351
|
|
|
0
|
Edit
Delete
|
|
17707
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17628
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777212651
|
1777212651
|
0
|
1777212650
|
1777212651
|
|
|
0
|
Edit
Delete
|
|
17708
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17629
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777212951
|
1777212951
|
0
|
1777212950
|
1777212951
|
|
|
0
|
Edit
Delete
|
|
17709
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17630
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777213251
|
1777213251
|
0
|
1777213250
|
1777213251
|
|
|
0
|
Edit
Delete
|
|
17710
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17631
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777213551
|
1777213551
|
0
|
1777213550
|
1777213551
|
|
|
0
|
Edit
Delete
|
|
17711
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17632
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777213851
|
1777213851
|
0
|
1777213850
|
1777213851
|
|
|
0
|
Edit
Delete
|
|
17712
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17633
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777214151
|
1777214151
|
0
|
1777214150
|
1777214151
|
|
|
0
|
Edit
Delete
|
|
17713
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17634
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777214451
|
1777214451
|
0
|
1777214450
|
1777214451
|
|
|
0
|
Edit
Delete
|
|
17714
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17635
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777214751
|
1777214751
|
0
|
1777214750
|
1777214751
|
|
|
0
|
Edit
Delete
|
|
17715
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17636
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777215051
|
1777215051
|
0
|
1777215050
|
1777215051
|
|
|
0
|
Edit
Delete
|
|
17716
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17637
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777215351
|
1777215351
|
0
|
1777215350
|
1777215351
|
|
|
0
|
Edit
Delete
|
|
17717
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17638
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777215651
|
1777215651
|
0
|
1777215650
|
1777215651
|
|
|
0
|
Edit
Delete
|
|
17718
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17639
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777215951
|
1777215951
|
0
|
1777215950
|
1777215951
|
|
|
0
|
Edit
Delete
|
|
17719
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17640
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777216251
|
1777216251
|
0
|
1777216250
|
1777216251
|
|
|
0
|
Edit
Delete
|
|
17720
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17641
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777216551
|
1777216551
|
0
|
1777216550
|
1777216551
|
|
|
0
|
Edit
Delete
|
|
17721
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17642
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777216851
|
1777216851
|
0
|
1777216850
|
1777216851
|
|
|
0
|
Edit
Delete
|
|
17722
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17643
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777217151
|
1777217151
|
0
|
1777217150
|
1777217151
|
|
|
0
|
Edit
Delete
|
|
17723
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17644
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777217451
|
1777217451
|
0
|
1777217450
|
1777217451
|
|
|
0
|
Edit
Delete
|
|
17724
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17645
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777217751
|
1777217751
|
0
|
1777217750
|
1777217751
|
|
|
0
|
Edit
Delete
|
|
17725
|
Merge gitea/main: harness/outbox/migration updates
|
6
|
5
|
health-check.yml
|
17646
|
-2
|
286
|
refs/heads/main
|
7b47df3186db279cfc071517a6c034aa213d926d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fd1878b707f31b05ee314173ac91491adb28bc30","after":"7b47df3186db279cfc071517a6c034aa213d926d","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/fd1878b707f31b05ee314173ac91491adb28bc30...7b47df3186db279cfc071517a6c034aa213d926d","commits":[{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"debdf5680e9bd056fb75e681e4d79cb74c02de9f","message":"fix: override existing env vars in dev mode to prevent empty REDIS_PASSWORD issue\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/debdf5680e9bd056fb75e681e4d79cb74c02de9f","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-13T22:22:30+08:00","added":[],"removed":[],"modified":["backend/src/config/load-env.ts"]}],"total_commits":0,"head_commit":{"id":"7b47df3186db279cfc071517a6c034aa213d926d","message":"Merge gitea/main: harness/outbox/migration updates\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7b47df3186db279cfc071517a6c034aa213d926d","author":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"committer":{"name":"Mluo","email":"mluo@MluodeMacBook-Air.local","username":""},"verification":null,"timestamp":"2026-04-17T08:50:00+08:00","added":[".github/workflows/migration-safety.yml",".qwen/settings.json",".qwen/settings.json.orig","DOCKER.md","QWEN.md","backend/.env","backend/prisma/migrations/20260103100000_a_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_b_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_a_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_b_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_a_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_b_add_ai_agents_module/migration.sql","backend/prisma/migrations/rollback-strategy.sql","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/agent-sessions/sandbox/builtin-tools.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.test.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/services/llm-runtime.service.ts","backend/src/modules/ai-agents/services/model-runtime-resolver.service.ts","docs/guides/database-migration-guide-v2.md","docs/reports/database-migration-improvements-2026-04-14.md","docs/reports/release-readiness-2026-04-15.md","reports/prisma-zod-contract-audit.2026-04-15.json","reports/prisma-zod-contract-audit.2026-04-15.md","scripts/ci-migration-check.sh","scripts/cleanup-legacy-migrations.sh","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"],"removed":["backend/backend/prisma/migrations/20260123235959_create_missing_tables/migration.sql","backend/prisma/migrations/20260103100000_add_bom_and_assembly/migration.sql","backend/prisma/migrations/20260103100000_add_customer_tags_meta/migration.sql","backend/prisma/migrations/20260104100000_add_im_channel_bindings/migration.sql","backend/prisma/migrations/20260104100000_add_performance_indexes/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents/migration.sql","backend/prisma/migrations/20260124000000_add_ai_agents_module/migration.sql"],"modified":[".dockerignore","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/Dockerfile","backend/Dockerfile.local","backend/prisma/process-designer.prisma","backend/src/config/kafka.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/agent-sessions/harness.service.test.ts","backend/src/modules/agent-sessions/harness.service.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.test.ts","backend/src/modules/agent-sessions/sandbox/sandbox.registry.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.controller.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.schema.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/semantic-agent.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.routes.ts","backend/src/modules/alliance-partners/alliance-partner.schema.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.controller.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/dimension-transform/dimension-transform.controller.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/expense/expense.controller.ts","backend/src/modules/geo-keywords/geo-keyword.controller.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-pricing/groupbuy-pricing.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge/knowledge.service.ts","backend/src/modules/marketing-matrix/matrix.controller.ts","backend/src/modules/mdm/mdm.service.ts","backend/src/modules/orders/order.controller.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/process/process.service.test.ts","backend/src/modules/process/process.service.ts","backend/src/modules/realtime/realtime.contract.routes.ts","backend/src/modules/realtime/realtime.routes.ts","backend/src/modules/revenue/revenue-crud.service.ts","backend/src/modules/sample-requests/sample-request.service.ts","backend/src/modules/search/search.service.ts","backend/src/modules/stores/store-config.service.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/treasury/treasury-crud.service.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.ts","create-extension.sh","docker-compose.local-prod.yml","docker-compose.prod.yml","docs/guides/database-migration-guide.md","e2e/scripts/verify-view-governance.mjs","e2e/tests/ui-modules/view-governance.generated.json","frontend/Dockerfile","frontend/src/composables/useDashboardRealtime.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/commander-workset.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5217003,"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-15T15:01:01+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
|
1777218051
|
1777218051
|
0
|
1777218050
|
1777218051
|
|
|
0
|
Edit
Delete
|
|
17729
|
Make local one-command startup work end-to-end
|
6
|
5
|
health-check.yml
|
17650
|
-2
|
289
|
refs/heads/main
|
597fbdc49bc67e7803e9ff0ab9c77dccc99d778e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7b47df3186db279cfc071517a6c034aa213d926d","after":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7b47df3186db279cfc071517a6c034aa213d926d...597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","commits":[{"id":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","message":"Make local one-command startup work end-to-end\n\nFix the gaps that prevented `make dev` / `docker compose up` from working\non a fresh checkout:\n\n- Replace `\u003cCHANGE_ME_*\u003e` placeholders in .env.example with dev defaults\n so Postgres / Redis / MinIO containers no longer initialize with the\n literal placeholder string as their password. Production override\n warning preserved at the top of the file.\n- Add normalize_placeholder() in sync-local-env.sh as a legacy-safety\n net for existing .env files still carrying the old placeholders.\n- Add PGBOUNCER_PORT to .env.example so it shows up alongside other\n configurable ports (the docker-compose default still works).\n- Remove the truncated complete_migration_seed.sql.gz (20 bytes,\n unreachable from any script or doc).\n- Add a \"🚀 快速开始\" section to README.md with prerequisites, the\n three-way startup comparison (make dev / full Docker / base-only),\n default credentials, and troubleshooting entry points — the README\n previously had no quickstart at all.\n- Unify `docker-compose \u003cverb\u003e` → `docker compose \u003cverb\u003e` (33 places\n in DEPLOYMENT.md) and replace `cd backend \u0026\u0026 npx prisma ...` /\n `npm ci` with `pnpm -C backend exec prisma ...` / `pnpm install`\n in DEPLOYMENT.md and DEPLOY_DB.md.\n- Annotate `make db-migrate / mock-seed / seed` as `[legacy]` in the\n Makefile help text and point users to the canonical\n `pnpm -C backend exec prisma migrate deploy` /\n `pnpm -C backend run db:seed` entrypoints.\n\nEnd-to-end verification:\n cp .env.example .env\n docker compose -f docker-compose.yml config --quiet # exits 0\n bash scripts/sync-local-env.sh # backend/.env\n uses identical\n dev passwords\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:41:01-07:00","added":[],"removed":["complete_migration_seed.sql.gz"],"modified":[".env.example","DEPLOYMENT.md","DEPLOY_DB.md","Makefile","README.md","scripts/start-all.sh","scripts/sync-local-env.sh"]}],"total_commits":0,"head_commit":{"id":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","message":"Make local one-command startup work end-to-end\n\nFix the gaps that prevented `make dev` / `docker compose up` from working\non a fresh checkout:\n\n- Replace `\u003cCHANGE_ME_*\u003e` placeholders in .env.example with dev defaults\n so Postgres / Redis / MinIO containers no longer initialize with the\n literal placeholder string as their password. Production override\n warning preserved at the top of the file.\n- Add normalize_placeholder() in sync-local-env.sh as a legacy-safety\n net for existing .env files still carrying the old placeholders.\n- Add PGBOUNCER_PORT to .env.example so it shows up alongside other\n configurable ports (the docker-compose default still works).\n- Remove the truncated complete_migration_seed.sql.gz (20 bytes,\n unreachable from any script or doc).\n- Add a \"🚀 快速开始\" section to README.md with prerequisites, the\n three-way startup comparison (make dev / full Docker / base-only),\n default credentials, and troubleshooting entry points — the README\n previously had no quickstart at all.\n- Unify `docker-compose \u003cverb\u003e` → `docker compose \u003cverb\u003e` (33 places\n in DEPLOYMENT.md) and replace `cd backend \u0026\u0026 npx prisma ...` /\n `npm ci` with `pnpm -C backend exec prisma ...` / `pnpm install`\n in DEPLOYMENT.md and DEPLOY_DB.md.\n- Annotate `make db-migrate / mock-seed / seed` as `[legacy]` in the\n Makefile help text and point users to the canonical\n `pnpm -C backend exec prisma migrate deploy` /\n `pnpm -C backend run db:seed` entrypoints.\n\nEnd-to-end verification:\n cp .env.example .env\n docker compose -f docker-compose.yml config --quiet # exits 0\n bash scripts/sync-local-env.sh # backend/.env\n uses identical\n dev passwords\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:41:01-07:00","added":[],"removed":["complete_migration_seed.sql.gz"],"modified":[".env.example","DEPLOYMENT.md","DEPLOY_DB.md","Makefile","README.md","scripts/start-all.sh","scripts/sync-local-env.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218001,"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":14,"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-24T23:28:21+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
|
5
|
2
|
0
|
0
|
0
|
1777218650
|
1777218650
|
|
|
0
|
Edit
Delete
|
|
17731
|
Stop tracking backend/.env (leaked secrets remedia Stop tracking backend/.env (leaked secrets remediation, step 1)...
|
6
|
5
|
e2e-tests.yml
|
17652
|
5
|
0
|
refs/heads/main
|
f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","after":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/597fbdc49bc67e7803e9ff0ab9c77dccc99d778e...f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","commits":[{"id":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","message":"Stop tracking backend/.env (leaked secrets remediation, step 1)\n\nbackend/.env was committed once at 204e3356f with what appear to be\nreal base64-encoded random secrets (DB password, Redis password, JWT\nsecret, MinIO secret key — pattern matches `openssl rand -base64 32`\noutput). The file header indicates it was auto-generated locally by\nscripts/sync-local-env.sh and committed by mistake.\n\nThis commit only stops tracking the file going forward. The leaked\ncontent is still reachable in git history at commit 204e3356f from\nmain and from ~10+ origin feature branches; treat the secrets as\ncompromised and rotate them in any deployment that may have used them.\n\nRoot .gitignore already has a `.env` rule that takes effect once the\nfile is no longer tracked, so no .gitignore change is needed.\n\nTo regenerate backend/.env locally with the new dev defaults:\n bash scripts/sync-local-env.sh --force\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:52:06-07:00","added":[],"removed":["backend/.env"],"modified":[]}],"total_commits":0,"head_commit":{"id":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","message":"Stop tracking backend/.env (leaked secrets remediation, step 1)\n\nbackend/.env was committed once at 204e3356f with what appear to be\nreal base64-encoded random secrets (DB password, Redis password, JWT\nsecret, MinIO secret key — pattern matches `openssl rand -base64 32`\noutput). The file header indicates it was auto-generated locally by\nscripts/sync-local-env.sh and committed by mistake.\n\nThis commit only stops tracking the file going forward. The leaked\ncontent is still reachable in git history at commit 204e3356f from\nmain and from ~10+ origin feature branches; treat the secrets as\ncompromised and rotate them in any deployment that may have used them.\n\nRoot .gitignore already has a `.env` rule that takes effect once the\nfile is no longer tracked, so no .gitignore change is needed.\n\nTo regenerate backend/.env locally with the new dev defaults:\n bash scripts/sync-local-env.sh --force\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:52:06-07:00","added":[],"removed":["backend/.env"],"modified":[]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218081,"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":14,"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-26T23:45:24+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
|
5
|
2
|
0
|
0
|
0
|
1777218739
|
1777218739
|
|
|
0
|
Edit
Delete
|
|
17734
|
Stop tracking backend/.env (leaked secrets remedia Stop tracking backend/.env (leaked secrets remediation, step 1)...
|
6
|
5
|
health-check.yml
|
17655
|
-2
|
292
|
refs/heads/main
|
f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"597fbdc49bc67e7803e9ff0ab9c77dccc99d778e","after":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/597fbdc49bc67e7803e9ff0ab9c77dccc99d778e...f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","commits":[{"id":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","message":"Stop tracking backend/.env (leaked secrets remediation, step 1)\n\nbackend/.env was committed once at 204e3356f with what appear to be\nreal base64-encoded random secrets (DB password, Redis password, JWT\nsecret, MinIO secret key — pattern matches `openssl rand -base64 32`\noutput). The file header indicates it was auto-generated locally by\nscripts/sync-local-env.sh and committed by mistake.\n\nThis commit only stops tracking the file going forward. The leaked\ncontent is still reachable in git history at commit 204e3356f from\nmain and from ~10+ origin feature branches; treat the secrets as\ncompromised and rotate them in any deployment that may have used them.\n\nRoot .gitignore already has a `.env` rule that takes effect once the\nfile is no longer tracked, so no .gitignore change is needed.\n\nTo regenerate backend/.env locally with the new dev defaults:\n bash scripts/sync-local-env.sh --force\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:52:06-07:00","added":[],"removed":["backend/.env"],"modified":[]}],"total_commits":0,"head_commit":{"id":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","message":"Stop tracking backend/.env (leaked secrets remediation, step 1)\n\nbackend/.env was committed once at 204e3356f with what appear to be\nreal base64-encoded random secrets (DB password, Redis password, JWT\nsecret, MinIO secret key — pattern matches `openssl rand -base64 32`\noutput). The file header indicates it was auto-generated locally by\nscripts/sync-local-env.sh and committed by mistake.\n\nThis commit only stops tracking the file going forward. The leaked\ncontent is still reachable in git history at commit 204e3356f from\nmain and from ~10+ origin feature branches; treat the secrets as\ncompromised and rotate them in any deployment that may have used them.\n\nRoot .gitignore already has a `.env` rule that takes effect once the\nfile is no longer tracked, so no .gitignore change is needed.\n\nTo regenerate backend/.env locally with the new dev defaults:\n bash scripts/sync-local-env.sh --force\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:52:06-07:00","added":[],"removed":["backend/.env"],"modified":[]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218081,"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":14,"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-26T23:45:24+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
|
5
|
2
|
0
|
0
|
0
|
1777218950
|
1777218950
|
|
|
0
|
Edit
Delete
|
|
17736
|
Add env-leak pre-commit guard and secrets-leak inc Add env-leak pre-commit guard and secrets-leak incident doc...
|
6
|
5
|
e2e-tests.yml
|
17657
|
5
|
0
|
refs/heads/main
|
bd8162cf2c08d175a1cab0f69d42b648bb825c10
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","after":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97...bd8162cf2c08d175a1cab0f69d42b648bb825c10","commits":[{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]},"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":5218086,"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":14,"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-26T23:52:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
5
|
2
|
0
|
0
|
0
|
1777219009
|
1777219009
|
|
|
0
|
Edit
Delete
|
|
17739
|
Add env-leak pre-commit guard and secrets-leak inc Add env-leak pre-commit guard and secrets-leak incident doc...
|
6
|
5
|
health-check.yml
|
17660
|
-2
|
295
|
refs/heads/main
|
bd8162cf2c08d175a1cab0f69d42b648bb825c10
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","after":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97...bd8162cf2c08d175a1cab0f69d42b648bb825c10","commits":[{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]},"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":5218086,"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":14,"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-26T23:52:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
5
|
2
|
0
|
0
|
0
|
1777219250
|
1777219267
|
|
|
0
|
Edit
Delete
|
|
17740
|
Add env-leak pre-commit guard and secrets-leak inc Add env-leak pre-commit guard and secrets-leak incident doc...
|
6
|
5
|
health-check.yml
|
17661
|
-2
|
295
|
refs/heads/main
|
bd8162cf2c08d175a1cab0f69d42b648bb825c10
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97","after":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/f8c99c0bccfc306a4dcc9afd03e1247a4ebd4a97...bd8162cf2c08d175a1cab0f69d42b648bb825c10","commits":[{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","message":"Add env-leak pre-commit guard and secrets-leak incident doc\n\n- .husky/pre-commit: insert a serial first-position check that blocks\n any staged file ending in `.env` or `.env.local` from entering the\n index. Templates (`.env.example`, `.env.test`, `frontend/.env.development`,\n etc.) are not matched. Background and the previous incident are\n documented in docs/security/leaked-env-2026-04-26.md.\n\n- docs/security/leaked-env-2026-04-26.md: full incident record covering\n what leaked, what was done in 597fbdc49 and f8c99c0bc, what each team\n member needs to do locally, the rotation checklist for the four leaked\n secrets, and the conditions under which a history rewrite would be\n warranted (currently not).\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bd8162cf2c08d175a1cab0f69d42b648bb825c10","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T08:56:37-07:00","added":["docs/security/leaked-env-2026-04-26.md"],"removed":[],"modified":[".husky/pre-commit"]},"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":5218086,"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":14,"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-26T23:52:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
5
|
2
|
0
|
0
|
0
|
1777219550
|
1777219553
|
|
|
0
|
Edit
Delete
|
|
17742
|
Add secret-content-scan to Fast Gate pre-commit
|
6
|
5
|
e2e-tests.yml
|
17663
|
5
|
0
|
refs/heads/main
|
6f30ee7954e6142227f44fbcb36106e5ce6018eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","after":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd8162cf2c08d175a1cab0f69d42b648bb825c10...6f30ee7954e6142227f44fbcb36106e5ce6018eb","commits":[{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]},"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":5218097,"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":14,"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-26T23:56:59+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
|
5
|
2
|
0
|
0
|
0
|
1777219586
|
1777219586
|
|
|
0
|
Edit
Delete
|
|
17745
|
Add secret-content-scan to Fast Gate pre-commit
|
6
|
5
|
health-check.yml
|
17666
|
-2
|
298
|
refs/heads/main
|
6f30ee7954e6142227f44fbcb36106e5ce6018eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","after":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd8162cf2c08d175a1cab0f69d42b648bb825c10...6f30ee7954e6142227f44fbcb36106e5ce6018eb","commits":[{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]},"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":5218097,"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":14,"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-26T23:56:59+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
|
5
|
2
|
0
|
0
|
0
|
1777219850
|
1777219850
|
|
|
0
|
Edit
Delete
|
|
17747
|
Unblock docker-compose.prod.yml validation by remo Unblock docker-compose.prod.yml validation by removing replicas:2...
|
6
|
5
|
e2e-tests.yml
|
17668
|
5
|
0
|
refs/heads/main
|
c04c1f61a7ca64acf31ed914678656d87ed6e35f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","after":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/6f30ee7954e6142227f44fbcb36106e5ce6018eb...c04c1f61a7ca64acf31ed914678656d87ed6e35f","commits":[{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]}],"total_commits":0,"head_commit":{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]},"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":5218106,"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":14,"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-27T00:06:37+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
5
|
2
|
0
|
0
|
0
|
1777219991
|
1777219991
|
|
|
0
|
Edit
Delete
|
|
17750
|
Unblock docker-compose.prod.yml validation by remo Unblock docker-compose.prod.yml validation by removing replicas:2...
|
6
|
5
|
health-check.yml
|
17671
|
-2
|
301
|
refs/heads/main
|
c04c1f61a7ca64acf31ed914678656d87ed6e35f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","after":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/6f30ee7954e6142227f44fbcb36106e5ce6018eb...c04c1f61a7ca64acf31ed914678656d87ed6e35f","commits":[{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]}],"total_commits":0,"head_commit":{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]},"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":5218106,"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":14,"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-27T00:06:37+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
5
|
2
|
0
|
0
|
0
|
1777220150
|
1777220150
|
|
|
0
|
Edit
Delete
|
|
17751
|
Unblock docker-compose.prod.yml validation by remo Unblock docker-compose.prod.yml validation by removing replicas:2...
|
6
|
5
|
health-check.yml
|
17672
|
-2
|
301
|
refs/heads/main
|
c04c1f61a7ca64acf31ed914678656d87ed6e35f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","after":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/6f30ee7954e6142227f44fbcb36106e5ce6018eb...c04c1f61a7ca64acf31ed914678656d87ed6e35f","commits":[{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]}],"total_commits":0,"head_commit":{"id":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","message":"Unblock docker-compose.prod.yml validation by removing replicas:2\n\n`docker compose -f docker-compose.prod.yml config` was failing with:\n\n services.deploy.replicas: can't set container_name and api as\n container name must be unique: invalid compose project\n\nThe api service had both `container_name: juhi-api` (relied on by\nscripts/deploy.sh:294 and scripts/post-deploy-verify.sh:39) and\n`deploy.replicas: 2`. Compose v2 rejects this combination because\nit can't give two replicas the same fixed name.\n\n`deploy.replicas` is also silently ignored in non-Swarm Compose mode,\nso this directive was aspirational rather than effective. The actual\nmulti-replica path in this repo is docker-compose.ha.yml.\n\nRemoved the `replicas: 2` line and added a comment explaining the\ntrade-off; kept resources/update_config/rollback_config for Swarm/K8s\ntranslation.\n\nVerified: `docker compose --env-file \u003cstub\u003e -f docker-compose.prod.yml\nconfig` now exits 0 with no warnings.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c04c1f61a7ca64acf31ed914678656d87ed6e35f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:13:05-07:00","added":[],"removed":[],"modified":["docker-compose.prod.yml"]},"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":5218106,"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":14,"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-27T00:06:37+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
5
|
2
|
0
|
0
|
0
|
1777220450
|
1777220450
|
|
|
0
|
Edit
Delete
|