|
14422
|
Implement Hermes-style harness context and fix all Implement Hermes-style harness context and fix alliance API tests...
|
6
|
5
|
health-check.yml
|
14344
|
-2
|
280
|
refs/heads/main
|
110abcc02b429bfac3ebe16a02a876c0ba2f4f62
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","after":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/551c4d2e9b42cd14481ec48c3b2e2526cab4d58c...110abcc02b429bfac3ebe16a02a876c0ba2f4f62","commits":[{"id":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","message":"Implement Hermes-style harness context and fix alliance API tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/110abcc02b429bfac3ebe16a02a876c0ba2f4f62","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T09:04:03+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.ts","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.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/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"e8baa3afde7621a8179f33a82639b86936d2242a","message":"Improve Harness prompt assembly and context compression\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e8baa3afde7621a8179f33a82639b86936d2242a","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T08:23:29+08:00","added":["QWEN.md","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"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.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/community-members/community-member.controller.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","message":"Implement Hermes-style harness context and fix alliance API tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/110abcc02b429bfac3ebe16a02a876c0ba2f4f62","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T09:04:03+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.ts","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.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/module-grades.latest.json","reports/outbox-atomicity-audit.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":5215827,"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-14T20:36: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
|
1776236150
|
1776236151
|
0
|
1776236150
|
1776236151
|
|
|
0
|
Edit
Delete
|
|
14423
|
Implement Hermes-style harness context and fix all Implement Hermes-style harness context and fix alliance API tests...
|
6
|
5
|
health-check.yml
|
14345
|
-2
|
280
|
refs/heads/main
|
110abcc02b429bfac3ebe16a02a876c0ba2f4f62
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"551c4d2e9b42cd14481ec48c3b2e2526cab4d58c","after":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/551c4d2e9b42cd14481ec48c3b2e2526cab4d58c...110abcc02b429bfac3ebe16a02a876c0ba2f4f62","commits":[{"id":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","message":"Implement Hermes-style harness context and fix alliance API tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/110abcc02b429bfac3ebe16a02a876c0ba2f4f62","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T09:04:03+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.ts","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.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/module-grades.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json"]},{"id":"e8baa3afde7621a8179f33a82639b86936d2242a","message":"Improve Harness prompt assembly and context compression\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e8baa3afde7621a8179f33a82639b86936d2242a","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T08:23:29+08:00","added":["QWEN.md","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"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.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/community-members/community-member.controller.ts","frontend/src/types/ai-agent.ts","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"110abcc02b429bfac3ebe16a02a876c0ba2f4f62","message":"Implement Hermes-style harness context and fix alliance API tests\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/110abcc02b429bfac3ebe16a02a876c0ba2f4f62","author":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"committer":{"name":"jh.sj","email":"jh.sj@jhsjdeMac-Studio.local","username":""},"verification":null,"timestamp":"2026-04-15T09:04:03+08:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/config/kafka.ts","backend/src/modules/agent-sessions/prompt-assembly.service.ts","backend/src/modules/alliance-partners/alliance-partner.controller.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/channels/channel.schema.ts","backend/src/modules/community-members/community-member.service.ts","backend/src/modules/partner-customers/partner-customer.schema.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/tests/api/alliance-partners.test.ts","backend/tests/api/alliance-products.test.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/module-grades.latest.json","reports/outbox-atomicity-audit.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":5215827,"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-14T20:36: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
|
1776236450
|
1776236451
|
0
|
1776236450
|
1776236451
|
|
|
0
|
Edit
Delete
|
|
18233
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
ci.yml
|
18153
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
14
|
1777340166
|
1777340288
|
0
|
1777340165
|
1777340582
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
18234
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
e2e-tests.yml
|
18154
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1777340288
|
1777340531
|
0
|
1777340166
|
1777340588
|
|
|
0
|
Edit
Delete
|
|
18235
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
test-pipeline.yml
|
18155
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
72
|
1777340538
|
1777340579
|
0
|
1777340167
|
1777340663
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
18236
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18156
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777340584
|
1777340584
|
0
|
1777340450
|
1777340584
|
|
|
0
|
Edit
Delete
|
|
18237
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
test-report.yml
|
18157
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-27T18:35:58-07:00","updated_at":"2026-04-27T18:35:58-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18234,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18234","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18234","display_title":"Implement Page AI Assist governance and context providers","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18154,"head_sha":"62f424f94b745efdce16bde3aa2c73e3839a9264","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T09:38:08+08:00","completed_at":"2026-04-28T09:42:11+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777340590
|
1777340594
|
0
|
1777340537
|
1777340616
|
|
|
0
|
Edit
Delete
|
|
18238
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
deploy.yml
|
18158
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-27T18:35:58-07:00","updated_at":"2026-04-27T18:35:58-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18235,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18235","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18235","display_title":"Implement Page AI Assist governance and context providers","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18155,"head_sha":"62f424f94b745efdce16bde3aa2c73e3839a9264","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T09:42:18+08:00","completed_at":"2026-04-28T09:42:59+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
26
|
1777340594
|
1777340657
|
0
|
1777340579
|
1777340658
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18239
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
test-report.yml
|
18159
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-27T18:35:58-07:00","updated_at":"2026-04-27T18:35:58-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18234,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18234","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18234","display_title":"Implement Page AI Assist governance and context providers","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18154,"head_sha":"62f424f94b745efdce16bde3aa2c73e3839a9264","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T09:38:08+08:00","completed_at":"2026-04-28T09:42:11+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777340609
|
1777340613
|
0
|
1777340589
|
1777340652
|
|
|
0
|
Edit
Delete
|
|
18240
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
deploy.yml
|
18160
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-27T18:35:58-07:00","updated_at":"2026-04-27T18:35:58-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18235,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18235","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18235","display_title":"Implement Page AI Assist governance and context providers","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18155,"head_sha":"62f424f94b745efdce16bde3aa2c73e3839a9264","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T09:42:18+08:00","completed_at":"2026-04-28T09:42:59+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
17
|
1777340659
|
1777340664
|
0
|
1777340658
|
1777340665
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18241
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
deploy.yml
|
18161
|
5
|
0
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-27T18:35:58-07:00","updated_at":"2026-04-27T18:35:58-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18235,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18235","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18235","display_title":"Implement Page AI Assist governance and context providers","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18155,"head_sha":"62f424f94b745efdce16bde3aa2c73e3839a9264","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T09:42:18+08:00","completed_at":"2026-04-28T09:42:59+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
1
|
40
|
1777340667
|
1777340690
|
0
|
1777340666
|
1777340690
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18242
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18162
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777340751
|
1777340751
|
0
|
1777340750
|
1777340751
|
|
|
0
|
Edit
Delete
|
|
18243
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18163
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777341051
|
1777341051
|
0
|
1777341050
|
1777341051
|
|
|
0
|
Edit
Delete
|
|
18244
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18164
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777341351
|
1777341351
|
0
|
1777341350
|
1777341351
|
|
|
0
|
Edit
Delete
|
|
18245
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18165
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777341651
|
1777341651
|
0
|
1777341650
|
1777341651
|
|
|
0
|
Edit
Delete
|
|
18246
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18166
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777341951
|
1777341951
|
0
|
1777341950
|
1777341951
|
|
|
0
|
Edit
Delete
|
|
18247
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18167
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777342251
|
1777342251
|
0
|
1777342250
|
1777342251
|
|
|
0
|
Edit
Delete
|
|
18248
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18168
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777342551
|
1777342551
|
0
|
1777342550
|
1777342551
|
|
|
0
|
Edit
Delete
|
|
18249
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18169
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777342851
|
1777342851
|
0
|
1777342850
|
1777342851
|
|
|
0
|
Edit
Delete
|
|
18250
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18170
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777343151
|
1777343151
|
0
|
1777343150
|
1777343151
|
|
|
0
|
Edit
Delete
|
|
18251
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18171
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777343451
|
1777343451
|
0
|
1777343450
|
1777343451
|
|
|
0
|
Edit
Delete
|
|
18252
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18172
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777343751
|
1777343751
|
0
|
1777343750
|
1777343751
|
|
|
0
|
Edit
Delete
|
|
18253
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18173
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777344051
|
1777344051
|
0
|
1777344050
|
1777344051
|
|
|
0
|
Edit
Delete
|
|
18254
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18174
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777344351
|
1777344351
|
0
|
1777344350
|
1777344351
|
|
|
0
|
Edit
Delete
|
|
18255
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18175
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777344651
|
1777344651
|
0
|
1777344650
|
1777344651
|
|
|
0
|
Edit
Delete
|
|
18256
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18176
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777344951
|
1777344951
|
0
|
1777344950
|
1777344951
|
|
|
0
|
Edit
Delete
|
|
18257
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18177
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777345251
|
1777345251
|
0
|
1777345250
|
1777345251
|
|
|
0
|
Edit
Delete
|
|
18258
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18178
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777345551
|
1777345551
|
0
|
1777345550
|
1777345551
|
|
|
0
|
Edit
Delete
|
|
18259
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18179
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777345851
|
1777345851
|
0
|
1777345850
|
1777345851
|
|
|
0
|
Edit
Delete
|
|
18260
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18180
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777346151
|
1777346151
|
0
|
1777346150
|
1777346151
|
|
|
0
|
Edit
Delete
|
|
18261
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18181
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777346451
|
1777346451
|
0
|
1777346450
|
1777346451
|
|
|
0
|
Edit
Delete
|
|
18262
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18182
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777346751
|
1777346751
|
0
|
1777346750
|
1777346751
|
|
|
0
|
Edit
Delete
|
|
18263
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18183
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777347051
|
1777347051
|
0
|
1777347050
|
1777347051
|
|
|
0
|
Edit
Delete
|
|
18264
|
Implement Page AI Assist governance and context pr Implement Page AI Assist governance and context providers...
|
6
|
5
|
health-check.yml
|
18184
|
-2
|
328
|
refs/heads/main
|
62f424f94b745efdce16bde3aa2c73e3839a9264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6","after":"62f424f94b745efdce16bde3aa2c73e3839a9264","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/1f8ccb4bb738cf6ef3a139070f88fc957f2d0ba6...62f424f94b745efdce16bde3aa2c73e3839a9264","commits":[{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]}],"total_commits":0,"head_commit":{"id":"62f424f94b745efdce16bde3aa2c73e3839a9264","message":"Implement Page AI Assist governance and context providers\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/62f424f94b745efdce16bde3aa2c73e3839a9264","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T18:35:58-07:00","added":["backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/tests/api/ai-assist.test.ts","frontend/src/composables/__tests__/usePageAIAssist.test.ts","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","scripts/audit-ai-assist-context-providers.ts","scripts/audit-ai-assist-coverage.ts","scripts/audit-ai-assist-skill-binding.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.routes.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/page-context-resolver.ts","backend/src/modules/ai-copilot/ai-copilot.controller.ts","backend/src/modules/ai-copilot/ai-copilot.service.ts","backend/src/shared/middleware/advanced-rate-limiter.middleware.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/client.ts","frontend/src/api/modules/ai-assist.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","package.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229282,"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":16,"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-28T00:40:52+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777347351
|
1777347351
|
0
|
1777347350
|
1777347351
|
|
|
0
|
Edit
Delete
|
|
17726
|
Make local one-command startup work end-to-end
|
6
|
5
|
ci.yml
|
17647
|
5
|
0
|
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"}}...
|
push
|
3
|
11
|
1777218321
|
1777218365
|
0
|
1777218320
|
1777218737
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
17727
|
Make local one-command startup work end-to-end
|
6
|
5
|
e2e-tests.yml
|
17648
|
5
|
0
|
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"}}...
|
push
|
2
|
20
|
1777218367
|
1777221855
|
0
|
1777218321
|
1777224031
|
|
|
0
|
Edit
Delete
|
|
17728
|
Make local one-command startup work end-to-end
|
6
|
5
|
test-pipeline.yml
|
17649
|
5
|
0
|
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"}}...
|
push
|
3
|
24
|
0
|
1777218740
|
0
|
1777218322
|
1777218744
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
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
|
4
|
4
|
1777221857
|
1777221857
|
0
|
1777218650
|
1777221857
|
|
|
0
|
Edit
Delete
|
|
23389
|
Merge branch 'chore/redeploy-frontend-script Merge branch 'chore/redeploy-frontend-script'...
|
6
|
5
|
ci.yml
|
23305
|
5
|
0
|
refs/heads/main
|
d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7bff77f02f58e23bad0ebcbdbb262111707628e7","after":"d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/7bff77f02f58e23bad0ebcbdbb262111707628e7...d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b","commits":[{"id":"d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b","message":"Merge branch 'chore/redeploy-frontend-script'\n\n新增前端一键强制重建部署脚本\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T22:30:40-07:00","added":["scripts/redeploy-frontend.sh"],"removed":[],"modified":[]},{"id":"11d87a93ad63dcc0a675f1b37fcb7ab1372ac47c","message":"chore(ops): 新增 redeploy-frontend.sh 一键强制重建前端镜像\n\n当前无自动镜像发布流水线(GitHub Actions deploy 移除+计费阻塞,Gitea CI 跳过 Docker build/deploy),\ngit pull + 本地构建的机器常因未带 --build 或误用 deploy.sh update(内部是 pull)继续跑旧镜像。\n本脚本一键完成 拉代码-\u003e强制重建-\u003e重建容器-\u003e验证,并复用 deploy.sh 同套 compose 项目名;\n支持 --with-api / --no-cache / --no-pull / --prebuilt(低内存宿主机构建路径)。\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/11d87a93ad63dcc0a675f1b37fcb7ab1372ac47c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T22:30:33-07:00","added":["scripts/redeploy-frontend.sh"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b","message":"Merge branch 'chore/redeploy-frontend-script'\n\n新增前端一键强制重建部署脚本\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d9e0ab1d9cbc0d7707781f8b0c9a5a49103ace8b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T22:30:40-07:00","added":["scripts/redeploy-frontend.sh"],"removed":[],"modified":[]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5489127,"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":10,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-25T12:53:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
16
|
1779687047
|
1779689247
|
0
|
1779687046
|
1779689247
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
18319
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
ci.yml
|
18239
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\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/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\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/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\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/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\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/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.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":5230218,"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":16,"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-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
14
|
1777360604
|
1777360641
|
0
|
1777360555
|
1777361866
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
18320
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
e2e-tests.yml
|
18240
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\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/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\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/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\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/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\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/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.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":5230218,"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":16,"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-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1777360642
|
1777360781
|
0
|
1777360556
|
1777361868
|
|
|
0
|
Edit
Delete
|
|
18321
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
deploy.yml
|
18242
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-28T00:14:48-07:00","updated_at":"2026-04-28T00:14:48-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18318,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18318","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18318","display_title":"Merge branch 'codex-module-detail-closure-governance'","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18238,"head_sha":"e9258713d6944a1e296ddd7017cf9755186b54d8","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"cancelled","started_at":"1970-01-01T08:00:00+08:00","completed_at":"2026-04-28T15:15:57+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
17
|
1777360788
|
1777361849
|
0
|
1777360564
|
1777361851
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18322
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
test-pipeline.yml
|
18241
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\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/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\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/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\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/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\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/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.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":5230218,"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":16,"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-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
72
|
1777360790
|
1777361849
|
0
|
1777360565
|
1777361964
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
18323
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
test-report.yml
|
18243
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-28T00:14:48-07:00","updated_at":"2026-04-28T00:14:48-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18317,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18317","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18317","display_title":"Merge branch 'codex-module-detail-closure-governance'","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18237,"head_sha":"e9258713d6944a1e296ddd7017cf9755186b54d8","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:16:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T15:14:12+08:00","completed_at":"2026-04-28T15:16:39+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:16:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777361859
|
1777361863
|
0
|
1777360604
|
1777361902
|
|
|
0
|
Edit
Delete
|
|
18324
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
test-report.yml
|
18244
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-28T00:14:48-07:00","updated_at":"2026-04-28T00:14:48-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18320,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18320","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18320","display_title":"Merge branch 'claude/hungry-montalcini-932ea7'","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18240,"head_sha":"6086495033147939cdd979bd15fd97d71f6c1ac3","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:16:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T15:17:22+08:00","completed_at":"2026-04-28T15:19:41+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:16:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777361869
|
1777361872
|
0
|
1777360787
|
1777361911
|
|
|
0
|
Edit
Delete
|
|
18325
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18245
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\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/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\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/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\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/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\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/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.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":5230218,"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":16,"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-28T15:13:38+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
|
1777361873
|
1777361873
|
0
|
1777360850
|
1777361873
|
|
|
0
|
Edit
Delete
|
|
18326
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18246
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\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/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\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/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\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/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\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/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.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":5230218,"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":16,"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-28T15:13:38+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
|
1777361875
|
1777361876
|
0
|
1777361150
|
1777361876
|
|
|
0
|
Edit
Delete
|
|
18327
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18247
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\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/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\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/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\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/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\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/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.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":5230218,"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":16,"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-28T15:13:38+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
|
1777361877
|
1777361877
|
0
|
1777361450
|
1777361877
|
|
|
0
|
Edit
Delete
|
|
18328
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18248
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\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/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\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/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\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/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\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/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.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":5230218,"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":16,"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-28T15:13:38+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
|
1777361879
|
1777361879
|
0
|
1777361810
|
1777361879
|
|
|
0
|
Edit
Delete
|
|
18329
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
deploy.yml
|
18249
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-28T00:14:48-07:00","updated_at":"2026-04-28T00:14:48-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18322,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18322","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18322","display_title":"Merge branch 'claude/hungry-montalcini-932ea7'","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18241,"head_sha":"6086495033147939cdd979bd15fd97d71f6c1ac3","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:16:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T15:19:50+08:00","completed_at":"2026-04-28T15:37:29+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230280,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"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-28T15:16:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
26
|
1777361881
|
1777361960
|
0
|
1777361852
|
1777361961
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|