|
23518
|
feat(marketing): add HI Atelier 4K poster series
|
57
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
ba48645a4237735976c13184c3aac435bc868949
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","after":"ba48645a4237735976c13184c3aac435bc868949","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/43fb473a0f44228eb0ac2dc41e920e3e5ab523b5...ba48645a4237735976c13184c3aac435bc868949","commits":[{"id":"ba48645a4237735976c13184c3aac435bc868949","message":"feat(marketing): add HI Atelier 4K poster series\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ba48645a4237735976c13184c3aac435bc868949","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T07:05:38-07:00","added":["output/hi-atelier-posters-4k/backgrounds/poster-01-brand-standard.png","output/hi-atelier-posters-4k/backgrounds/poster-02-dual-mode.png","output/hi-atelier-posters-4k/backgrounds/poster-03-storyboard-video.png","output/hi-atelier-posters-4k/backgrounds/poster-04-quality-delivery.png","output/hi-atelier-posters-4k/final/01-brand-standard-4k.png","output/hi-atelier-posters-4k/final/02-dual-mode-4k.png","output/hi-atelier-posters-4k/final/03-story-to-screen-4k.png","output/hi-atelier-posters-4k/final/04-proof-first-delivery-4k.png","output/hi-atelier-posters-4k/final/contact-sheet.jpg","output/hi-atelier-posters-4k/manifest.json","output/hi-atelier-posters-4k/provenance.md","output/hi-atelier-posters-4k/render_posters.py"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/startup-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"ba48645a4237735976c13184c3aac435bc868949","message":"feat(marketing): add HI Atelier 4K poster series\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ba48645a4237735976c13184c3aac435bc868949","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T07:05:38-07:00","added":["output/hi-atelier-posters-4k/backgrounds/poster-01-brand-standard.png","output/hi-atelier-posters-4k/backgrounds/poster-02-dual-mode.png","output/hi-atelier-posters-4k/backgrounds/poster-03-storyboard-video.png","output/hi-atelier-posters-4k/backgrounds/poster-04-quality-delivery.png","output/hi-atelier-posters-4k/final/01-brand-standard-4k.png","output/hi-atelier-posters-4k/final/02-dual-mode-4k.png","output/hi-atelier-posters-4k/final/03-story-to-screen-4k.png","output/hi-atelier-posters-4k/final/04-proof-first-delivery-4k.png","output/hi-atelier-posters-4k/final/contact-sheet.jpg","output/hi-atelier-posters-4k/manifest.json","output/hi-atelier-posters-4k/provenance.md","output/hi-atelier-posters-4k/render_posters.py"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/startup-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":13414,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-24T17:19:31+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":true,"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
|
4
|
1787581007
|
1787581098
|
0
|
1787581007
|
1787581098
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23912
|
Merge github/main (PR #14 merge commit) into main
|
116
|
5
|
platform.yml
|
38
|
5
|
0
|
refs/heads/main
|
f1404780a55c8cf7ab4ab0b98386c071169dc78a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"44f921ff30c0579e914befcdfb77cd569513cdb6","after":"f1404780a55c8cf7ab4ab0b98386c071169dc78a","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/44f921ff30c0579e914befcdfb77cd569513cdb6...f1404780a55c8cf7ab4ab0b98386c071169dc78a","commits":[{"id":"f1404780a55c8cf7ab4ab0b98386c071169dc78a","message":"Merge github/main (PR #14 merge commit) into main\n\n树与本地 main 顶端相同,不改文件;把 GitHub 受保护主分支的合并提交接回本地历史。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/f1404780a55c8cf7ab4ab0b98386c071169dc78a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:46:29-07:00","added":[],"removed":[],"modified":[]},{"id":"bf3fa2f552a2936128189375afb85bea0934e7fc","message":"Merge pull request #14 from laoluojuhai/sync/main-20260912-r7\n\nsync(main): 推平本地 main → GitHub(第七轮·收敛:Redpanda 候选块 1244095 / edeaf51 + 两次 GitHub 合并的接回与报告重生成)","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bf3fa2f552a2936128189375afb85bea0934e7fc","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T06:46:23-07:00","added":["stack/provision/redpanda-topics.json","stack/provision/redpanda-topics.sh"],"removed":["stack/provision/nats-streams.json","stack/provision/nats-streams.sh"],"modified":["docs/runbook.md","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json","stack/README.md","stack/compose.yaml"]},{"id":"7f1a00be9a726014a04fb5a1921c7818abaf73ed","message":"feat(stack): PF-11 stack 侧——OpenBao 供给草案(Transit / KV v2 / 策略 / AppRole / 审计)+ 一次性 dev 容器冒烟 21/21,候选镜像首次 pull 核实并按 digest 锁定(DEC-025 B1 / DEC-006 批准记录 2026-09-12)\n\n- provision/openbao-provision.json:mounts(transit、secret kv-v2;pki 随 PF-11)、transit keys(idp-signing rsa-2048 供 M1 RS256 签名 + kid 轮换重叠;m2-credential-envelope aes256-gcm96 供 M2 租约信封;均不可导出、720h 自动轮换)、每应用每环境只读策略模板(identity / credential 额外 transit 能力)、AppRole 角色模板(token_ttl 1h 与 DEC-006 对齐、secret_id 只经注入链)、审计设备;dev -dev 内存模式 / staging Raft 单实例 / prod HA 随 DEC-025 附条件\n- provision/openbao-provision.sh:--dry-run 渲染 bao 命令;--smoke 起一次性 -dev 容器(随机 root token、结束即删)逐条执行并验证 transit 不可导出 + 签名往返、kv 往返、AppRole 登录、跨应用路径 403;--apply 在 PF-11 前退出 3;报告 stack/reports/openbao-smoke.\u003c日期\u003e.json\n- compose:openbao 候选块按 digest 锁定(openbao/openbao:2.3.1,linux/arm64 73 MB),头注改为已批裁决 + PF-11 启用;四份 config 通过\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/7f1a00be9a726014a04fb5a1921c7818abaf73ed","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:41:12-07:00","added":["stack/provision/openbao-provision.json","stack/provision/openbao-provision.sh","stack/reports/openbao-smoke.2026-09-12.json"],"removed":[],"modified":["stack/README.md","stack/compose.yaml"]}],"total_commits":0,"head_commit":{"id":"f1404780a55c8cf7ab4ab0b98386c071169dc78a","message":"Merge github/main (PR #14 merge commit) into main\n\n树与本地 main 顶端相同,不改文件;把 GitHub 受保护主分支的合并提交接回本地历史。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/f1404780a55c8cf7ab4ab0b98386c071169dc78a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:46:29-07:00","added":[],"removed":[],"modified":[]},"repository":{"id":116,"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":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":4658,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T21:44:05+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":true,"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
|
30
|
1789220792
|
1789220828
|
0
|
1789220792
|
1789220852
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23862
|
docs(release): record camera console deployment an docs(release): record camera console deployment and live QA...
|
57
|
5
|
governance.yml
|
212
|
5
|
0
|
refs/heads/main
|
2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"45191102763430f55dbe4f5b55a176e3c177b784","after":"2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/45191102763430f55dbe4f5b55a176e3c177b784...2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a","commits":[{"id":"2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a","message":"docs(release): record camera console deployment and live QA\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-11T22:49:33-07:00","added":["docs/releases/2026-09-12-camera-console1.md","reports/camera-console-2026-09-12/README.md","reports/camera-console-2026-09-12/deployment.json","reports/camera-console-2026-09-12/live.json"],"removed":[],"modified":["docs/governance/log/2026-09-12-camera-console.md","docs/releases/current.md"]}],"total_commits":0,"head_commit":{"id":"2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a","message":"docs(release): record camera console deployment and live QA\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-11T22:49:33-07:00","added":["docs/releases/2026-09-12-camera-console1.md","reports/camera-console-2026-09-12/README.md","reports/camera-console-2026-09-12/deployment.json","reports/camera-console-2026-09-12/live.json"],"removed":[],"modified":["docs/governance/log/2026-09-12-camera-console.md","docs/releases/current.md"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":904223,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":12,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-12T13:40:14+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":true,"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
|
4
|
1789192200
|
1789192240
|
0
|
1789192197
|
1789192240
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23680
|
docs(governance): verify integrated fixes before m docs(governance): verify integrated fixes before main synchronization...
|
57
|
5
|
governance.yml
|
51
|
5
|
0
|
refs/heads/main
|
98fd251e96c5617db061549b1a202dcfbe42dd6e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"45499ac335596c4be75b1e6fd3e8a5e8533d8f2e","after":"98fd251e96c5617db061549b1a202dcfbe42dd6e","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/45499ac335596c4be75b1e6fd3e8a5e8533d8f2e...98fd251e96c5617db061549b1a202dcfbe42dd6e","commits":[{"id":"98fd251e96c5617db061549b1a202dcfbe42dd6e","message":"docs(governance): verify integrated fixes before main synchronization\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/98fd251e96c5617db061549b1a202dcfbe42dd6e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T00:00:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-comprehensive-governance.md","reports/comprehensive-governance-2026-09-08/README.md","reports/comprehensive-governance-2026-09-08/verification.json","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"4bb37d84d45b571b33704db67a94df8128efad9b","message":"Merge branch 'main' into fix/comprehensive-governance-20260908\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4bb37d84d45b571b33704db67a94df8128efad9b","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T23:54:18-07:00","added":["docs/governance/log/2026-09-08-minimax-billing.md"],"removed":[],"modified":["apps/web/src/components/material-factory/job-recovery.ts","scripts/job-recovery.test.mjs"]},{"id":"349bd6d3650474753c18db166f4c14dc8c5486c7","message":"docs: record concurrent main update and pending integration approval\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/349bd6d3650474753c18db166f4c14dc8c5486c7","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T23:33:04-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-08-comprehensive-governance.md","reports/comprehensive-governance-2026-09-08/README.md","reports/comprehensive-governance-2026-09-08/verification.json"]},{"id":"813af5bae491debdfa6ba3a280bbd315d68ac64a","message":"docs(governance): record verified remediation and remaining gaps\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/813af5bae491debdfa6ba3a280bbd315d68ac64a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T23:30:58-07:00","added":["docs/governance/log/2026-09-08-comprehensive-governance.md","docs/releases/2026-09-06-r19.md","docs/releases/2026-09-06-r20.md","docs/releases/2026-09-06-r21.md","docs/releases/2026-09-07-r27.md","reports/comprehensive-governance-2026-09-08/README.md","reports/comprehensive-governance-2026-09-08/verification.json","reports/sidecar-tests.latest.json"],"removed":[],"modified":["CLAUDE.md","README.md","docs/README.md","docs/architecture.md","docs/browser-enterprise-login.md","docs/domain/owner-matrix.md","docs/product/acceptance-and-status.md","docs/product/business-blueprint-2026-09-05.md","docs/product/creative-pipeline-design.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"f90b8c115b57c2b5008c48a58613d47e0ab5d845","message":"fix: explain hosted video billing errors without suggesting retries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f90b8c115b57c2b5008c48a58613d47e0ab5d845","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T23:29:54-07:00","added":["docs/governance/log/2026-09-08-minimax-billing.md"],"removed":[],"modified":["apps/web/src/components/material-factory/job-recovery.ts","scripts/job-recovery.test.mjs"]}],"total_commits":0,"head_commit":{"id":"98fd251e96c5617db061549b1a202dcfbe42dd6e","message":"docs(governance): verify integrated fixes before main synchronization\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/98fd251e96c5617db061549b1a202dcfbe42dd6e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T00:00:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-comprehensive-governance.md","reports/comprehensive-governance-2026-09-08/README.md","reports/comprehensive-governance-2026-09-08/verification.json","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":634781,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-08T10:50:58+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":true,"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
|
4
|
1788850883
|
1788851914
|
0
|
1788850881
|
1788851914
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23676
|
fix(brand): compare master prompt sources independ fix(brand): compare master prompt sources independently of browser locale...
|
57
|
5
|
governance.yml
|
47
|
5
|
0
|
refs/heads/main
|
41bc7d4c1a58ca942fae07ce1eb6b7185661a086
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4563a33f4c2ee3696b0fa07bca8c46972d0112e4","after":"41bc7d4c1a58ca942fae07ce1eb6b7185661a086","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/4563a33f4c2ee3696b0fa07bca8c46972d0112e4...41bc7d4c1a58ca942fae07ce1eb6b7185661a086","commits":[{"id":"41bc7d4c1a58ca942fae07ce1eb6b7185661a086","message":"fix(brand): compare master prompt sources independently of browser locale\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/41bc7d4c1a58ca942fae07ce1eb6b7185661a086","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T19:11:12-07:00","added":["docs/governance/log/2026-09-07-master-prompt-source-locale.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/MasterPromptEditor.tsx","packages/contracts/src/master-prompt.test.ts","packages/contracts/src/material.ts","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"41bc7d4c1a58ca942fae07ce1eb6b7185661a086","message":"fix(brand): compare master prompt sources independently of browser locale\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/41bc7d4c1a58ca942fae07ce1eb6b7185661a086","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T19:11:12-07:00","added":["docs/governance/log/2026-09-07-master-prompt-source-locale.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/MasterPromptEditor.tsx","packages/contracts/src/master-prompt.test.ts","packages/contracts/src/material.ts","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]},"repository":{"id":57,"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":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":628685,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-08T08:12: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":true,"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
|
4
|
1788833498
|
1788833538
|
0
|
1788833496
|
1788833538
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23611
|
chore(reports): refresh clean static evidence
|
96
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
2230e6f0a7087cbdbf18e63948e85325474f3897
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"456d79abd599208f2a7d6fe388f4f71b56e7ee89","after":"2230e6f0a7087cbdbf18e63948e85325474f3897","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/compare/456d79abd599208f2a7d6fe388f4f71b56e7ee89...2230e6f0a7087cbdbf18e63948e85325474f3897","commits":[{"id":"2230e6f0a7087cbdbf18e63948e85325474f3897","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/2230e6f0a7087cbdbf18e63948e85325474f3897","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:34:07-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"813e27037b879e304a18fc5c125990c93e7d26b4","message":"chore(reports): record clean framework sync evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/813e27037b879e304a18fc5c125990c93e7d26b4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:25:47-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"77669b4253e651c7e26cbd5578b5c718c07fc9f5","message":"chore(migration): record framework sync receipt\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/77669b4253e651c7e26cbd5578b5c718c07fc9f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:25:01-07:00","added":[],"removed":[],"modified":["docs/framework-migration.md","reports/framework-migration.latest.json"]},{"id":"7ab452e45b9743cbc69567207eceb9535ed27cbe","message":"feat(framework): sync G15-B Redis occupancy guard and governance experience\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/7ab452e45b9743cbc69567207eceb9535ed27cbe","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:25:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md","docs/governance-experience.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-conformance-differential.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/acceptance-base-guard.mjs"]},{"id":"7e93ee9506087260793de05f6769fd816c62dc9a","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/7e93ee9506087260793de05f6769fd816c62dc9a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T01:29:29-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"2230e6f0a7087cbdbf18e63948e85325474f3897","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-idp/commit/2230e6f0a7087cbdbf18e63948e85325474f3897","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:34:07-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":96,"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":"enterprise-idp","full_name":"luoanwu/enterprise-idp","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":703,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-idp/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-idp","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-idp","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-idp.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-idp.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:57:53+08:00","updated_at":"2026-09-01T21:59:44+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":true,"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
|
10
|
1788405568
|
1788405612
|
0
|
1788405484
|
1788407463
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23531
|
docs(governance): clarify evidence baseline
|
81
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
ce807fe941d01cc4a4a399c474be857407d4aed9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"464b90ba5bf51536276468811aac396e51d66892","after":"ce807fe941d01cc4a4a399c474be857407d4aed9","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/464b90ba5bf51536276468811aac396e51d66892...ce807fe941d01cc4a4a399c474be857407d4aed9","commits":[{"id":"ce807fe941d01cc4a4a399c474be857407d4aed9","message":"docs(governance): clarify evidence baseline\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/ce807fe941d01cc4a4a399c474be857407d4aed9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:46:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},{"id":"a66ef1d2521ccf4b1c9a9c2da07eb9975ae1dc71","message":"feat(governance): enforce signed tenant auth\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/a66ef1d2521ccf4b1c9a9c2da07eb9975ae1dc71","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:46:21-07:00","added":["apps/api-fastify/src/plugins/auth.ts","apps/api-nestjs/src/common/auth.guard.ts","packages/contracts/src/auth.test.ts","packages/contracts/src/auth.ts","reports/auth-source.latest.json","scripts/check-auth-source.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/routes/service-cases.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/service-cases/service-cases.controller.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/src/lib/api.ts","artifacts/os-products/juhai-service-os-product-0.2.0.tgz","artifacts/os-products/juhai-service-os-product.lock.json","docs/governance-experience.md","os-products/juhai.service/acceptance/juhai.service.product.acceptance.acceptance.mjs","package.json","packages/contracts/package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"ce807fe941d01cc4a4a399c474be857407d4aed9","message":"docs(governance): clarify evidence baseline\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/ce807fe941d01cc4a4a399c474be857407d4aed9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:46:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":81,"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":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1782,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-08-26T08:48: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":true,"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
|
4
|
0
|
1787709129
|
0
|
1787708840
|
1787709129
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
22432
|
Refresh outbox atomicity audit report
|
6
|
5
|
ci.yml
|
22350
|
5
|
0
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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"}}...
|
push
|
2
|
16
|
1778598487
|
1778598537
|
0
|
1778598486
|
1778609522
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
22433
|
Refresh outbox atomicity audit report
|
6
|
5
|
e2e-tests.yml
|
22351
|
5
|
0
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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"}}...
|
push
|
2
|
20
|
1778598538
|
1778598706
|
0
|
1778598487
|
1778609533
|
|
|
0
|
Edit
Delete
|
|
22434
|
Refresh outbox atomicity audit report
|
6
|
5
|
migration-safety.yml
|
22352
|
5
|
0
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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"}}...
|
push
|
2
|
4
|
1778598714
|
1778609369
|
0
|
1778598488
|
1778609369
|
|
|
0
|
Edit
Delete
|
|
22435
|
Refresh outbox atomicity audit report
|
6
|
5
|
test-pipeline.yml
|
22353
|
5
|
0
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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"}}...
|
push
|
2
|
72
|
1778609458
|
1778609519
|
0
|
1778598489
|
1778609632
|
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
|
|
22436
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22354
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609524
|
1778609524
|
0
|
1778598641
|
1778609524
|
|
|
0
|
Edit
Delete
|
|
22438
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22356
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609534
|
1778609535
|
0
|
1778598941
|
1778609535
|
|
|
0
|
Edit
Delete
|
|
22439
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22357
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609536
|
1778609537
|
0
|
1778599241
|
1778609537
|
|
|
0
|
Edit
Delete
|
|
22440
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22358
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609538
|
1778609539
|
0
|
1778599541
|
1778609539
|
|
|
0
|
Edit
Delete
|
|
22441
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22359
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609540
|
1778609541
|
0
|
1778599841
|
1778609541
|
|
|
0
|
Edit
Delete
|
|
22442
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22360
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609542
|
1778609543
|
0
|
1778600141
|
1778609543
|
|
|
0
|
Edit
Delete
|
|
22443
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22361
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609544
|
1778609545
|
0
|
1778600441
|
1778609545
|
|
|
0
|
Edit
Delete
|
|
22444
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22362
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609546
|
1778609547
|
0
|
1778600741
|
1778609547
|
|
|
0
|
Edit
Delete
|
|
22445
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22363
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609548
|
1778609549
|
0
|
1778601041
|
1778609549
|
|
|
0
|
Edit
Delete
|
|
22446
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22364
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609550
|
1778609551
|
0
|
1778601341
|
1778609551
|
|
|
0
|
Edit
Delete
|
|
22447
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22365
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609552
|
1778609553
|
0
|
1778601641
|
1778609553
|
|
|
0
|
Edit
Delete
|
|
22448
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22366
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609554
|
1778609555
|
0
|
1778601941
|
1778609555
|
|
|
0
|
Edit
Delete
|
|
22449
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22367
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609556
|
1778609557
|
0
|
1778609382
|
1778609557
|
|
|
0
|
Edit
Delete
|
|
22454
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22372
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778609742
|
1778609742
|
0
|
1778609741
|
1778609742
|
|
|
0
|
Edit
Delete
|
|
22455
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22373
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778610042
|
1778610042
|
0
|
1778610041
|
1778610042
|
|
|
0
|
Edit
Delete
|
|
22456
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22374
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778610342
|
1778610342
|
0
|
1778610341
|
1778610342
|
|
|
0
|
Edit
Delete
|
|
22457
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22375
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778610642
|
1778610642
|
0
|
1778610641
|
1778610642
|
|
|
0
|
Edit
Delete
|
|
22458
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22376
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778610942
|
1778610942
|
0
|
1778610941
|
1778610942
|
|
|
0
|
Edit
Delete
|
|
22459
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22377
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778611242
|
1778611242
|
0
|
1778611241
|
1778611242
|
|
|
0
|
Edit
Delete
|
|
22460
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22378
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778611542
|
1778611542
|
0
|
1778611541
|
1778611542
|
|
|
0
|
Edit
Delete
|
|
22461
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22379
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778611842
|
1778611842
|
0
|
1778611841
|
1778611842
|
|
|
0
|
Edit
Delete
|
|
22462
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22380
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778612142
|
1778612142
|
0
|
1778612141
|
1778612142
|
|
|
0
|
Edit
Delete
|
|
22463
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22381
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778612442
|
1778612442
|
0
|
1778612441
|
1778612442
|
|
|
0
|
Edit
Delete
|
|
22464
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22382
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778612742
|
1778612742
|
0
|
1778612741
|
1778612742
|
|
|
0
|
Edit
Delete
|
|
22465
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22383
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778613042
|
1778613042
|
0
|
1778613041
|
1778613042
|
|
|
0
|
Edit
Delete
|
|
22466
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22384
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778613342
|
1778613342
|
0
|
1778613341
|
1778613342
|
|
|
0
|
Edit
Delete
|
|
22467
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22385
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778613642
|
1778613642
|
0
|
1778613641
|
1778613642
|
|
|
0
|
Edit
Delete
|
|
22468
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22386
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778613942
|
1778613942
|
0
|
1778613941
|
1778613942
|
|
|
0
|
Edit
Delete
|
|
22469
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22387
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778614242
|
1778614242
|
0
|
1778614241
|
1778614242
|
|
|
0
|
Edit
Delete
|
|
22470
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22388
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778614542
|
1778614542
|
0
|
1778614541
|
1778614542
|
|
|
0
|
Edit
Delete
|
|
22471
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22389
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778614842
|
1778614842
|
0
|
1778614841
|
1778614842
|
|
|
0
|
Edit
Delete
|
|
22472
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22390
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778615142
|
1778615142
|
0
|
1778615141
|
1778615142
|
|
|
0
|
Edit
Delete
|
|
22473
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22391
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778615442
|
1778615442
|
0
|
1778615441
|
1778615442
|
|
|
0
|
Edit
Delete
|
|
22474
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22392
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778615742
|
1778615742
|
0
|
1778615741
|
1778615742
|
|
|
0
|
Edit
Delete
|
|
22475
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22393
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778616042
|
1778616042
|
0
|
1778616041
|
1778616042
|
|
|
0
|
Edit
Delete
|
|
22476
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22394
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778616342
|
1778616342
|
0
|
1778616341
|
1778616342
|
|
|
0
|
Edit
Delete
|
|
22477
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22395
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778616642
|
1778616642
|
0
|
1778616641
|
1778616642
|
|
|
0
|
Edit
Delete
|
|
22478
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22396
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778616942
|
1778616942
|
0
|
1778616941
|
1778616942
|
|
|
0
|
Edit
Delete
|
|
22479
|
Refresh outbox atomicity audit report
|
6
|
5
|
health-check.yml
|
22397
|
-2
|
349
|
refs/heads/main
|
cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"468c7319f39e251cdf8eb96c3aa63f4db200a7db","after":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/468c7319f39e251cdf8eb96c3aa63f4db200a7db...cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","commits":[{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-audit.latest.json"]},{"id":"6fda10921d20ba6f6dd1594727c9f38a6f10af2e","message":"Update migration governance and deploy gate\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6fda10921d20ba6f6dd1594727c9f38a6f10af2e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T08:19:05-07:00","added":["docs/governance/migration-deploy-gate-evidence-2026-05-11.md"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/prisma/DATABASE_DEPLOYMENT.md","backend/prisma/migrations/20260510130100_grant_app_create_open_readonly_audit/migration.sql","backend/prisma/migrations/README.md","docs/database/README.md","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json"]},{"id":"31f7c23c6c02ab971f239702e6379e1cce991ae7","message":"Update backbone evidence and review queue contracts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/31f7c23c6c02ab971f239702e6379e1cce991ae7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T07:30:02-07:00","added":["backend/src/modules/ai-assist/__tests__/context-provider-registry.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.schema.test.ts","backend/src/modules/customers/customer-lifecycle.service.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/customer-lifecycle.test.ts","backend/tests/api/finance-periods.test.ts","backend/tests/api/revenue-commission-settlements.test.ts","docs/governance/ai-process-context-owner-matrix-2026-05-10.md","docs/governance/ai-process-evidence-bundle-2026-05-10.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/sap-grade-business-backbone-workset-2026-05-10.md","docs/governance/tob-customer-lifecycle-evidence-bundle-2026-05-10.md","docs/governance/tob-customer-lifecycle-owner-matrix-2026-05-10.md","docs/governance/toc-store-operating-evidence-bundle-2026-05-10.md","docs/governance/toc-store-operating-owner-matrix-2026-05-10.md","e2e/test-results/results.json","e2e/tests/auth/customer-lifecycle-readmodel-smoke.spec.ts","frontend/src/api/modules/store-performance.test.ts","frontend/src/api/modules/stores.test.ts","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/store-performance/__tests__/store-performance-g4.smoke.test.ts","reports/sap-grade-business-backbone-workset-2026-05-10.json"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","DOCKER.md","GEMINI.md","README.md","backend/Dockerfile","backend/package.json","backend/src/modules/ai-assist/ai-assist.docs.ts","backend/src/modules/ai-assist/ai-assist.schema.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-review-queue/ai-review-queue.docs.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.test.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/commissions/commission.docs.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/customers/customer.controller.ts","backend/src/modules/customers/customer.docs.ts","backend/src/modules/customers/customer.routes.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-periods.service.ts","backend/src/modules/finance/finance.controller.ts","backend/src/modules/finance/finance.docs.ts","backend/src/modules/finance/finance.routes.ts","backend/src/modules/finance/finance.schema.ts","backend/src/modules/finance/finance.service.ts","backend/src/modules/opportunities/opportunity.service.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.controller.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-reconciliation.controller.ts","backend/src/modules/payments/payment-reconciliation.service.ts","backend/src/modules/payments/payment-record.service.ts","backend/src/modules/payments/payment-stats.service.ts","backend/src/modules/payments/payment.docs.ts","backend/src/modules/payments/payment.routes.ts","backend/src/modules/payments/payment.schema.ts","backend/src/modules/payments/payment.service.test.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/revenue/ar-ledger.docs.ts","backend/src/modules/revenue/ar-ledger.service.test.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/invoice.docs.ts","backend/src/modules/revenue/invoice.service.test.ts","backend/src/modules/revenue/invoice.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/revenue/sales-commission.routes.ts","backend/src/modules/revenue/sales-commission.schema.ts","backend/src/modules/revenue/sales-commission.service.ts","backend/src/modules/store-performance/store-performance.controller.ts","backend/src/modules/store-performance/store-performance.docs.ts","backend/src/modules/store-performance/store-performance.routes.ts","backend/src/modules/store-performance/store-performance.schema.ts","backend/src/modules/store-performance/store-performance.service.test.ts","backend/src/modules/store-performance/store-performance.service.ts","backend/src/modules/ticket-workflows/ticket-workflow.service.ts","backend/src/shared/services/event-log.service.ts","backend/src/shared/state-machines/__tests__/finance-state-machines.test.ts","backend/src/shared/state-machines/machines/accounting-period.machine.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","backend/tests/api/ar-ledger.test.ts","backend/tests/api/bootstrap-test-services.ts","backend/tests/api/cleanup-runtime.ts","backend/tests/api/contracts.test.ts","backend/tests/api/invoices.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/payments.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/store-performance.test.ts","deploy/kubernetes/namespace.yaml","docs/deployment/deployment-checklist.md","docs/deployment/deployment-guide.md","docs/governance/baseline-and-experience.md","docs/governance/finance-amount-precision-rfc-2026-05-10.md","docs/governance/finance-center-audit-2026-05-10.md","docs/governance/finance-rls-coverage-rfc-2026-05-10.md","docs/guides/CONTRACT_COMPLIANCE_GUIDE.md","docs/operations/production-launch-checklist.md","docs/optimization/websocket-scaling.md","docs/plans/action-plan-2026.md","docs/plans/weakness-remediation-plan.md","docs/prd/ktv-location-selection-prd.md","docs/reports/system/analysis/swot-analysis.md","docs/reports/system/misc/phase-0-completion-report.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/store-performance-smoke.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/ai-review-queue.ts","frontend/src/api/modules/ar-ledger.test.ts","frontend/src/api/modules/ar-ledger.ts","frontend/src/api/modules/cash-flow.ts","frontend/src/api/modules/customers.ts","frontend/src/api/modules/invoices.ts","frontend/src/api/modules/payments.ts","frontend/src/api/modules/reconciliation.ts","frontend/src/api/modules/store-performance.ts","frontend/src/api/modules/stores.ts","frontend/src/router/__tests__/ai-agent-menu-governance.test.ts","frontend/src/types/models.ts","frontend/src/views/ai-agents/__tests__/ai-review-queue.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Form.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/__tests__/ar-ledger-g4.smoke.test.ts","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customers/Detail.vue","frontend/src/views/customers/__tests__/customers-g4.smoke.test.ts","frontend/src/views/customers/components/useCustomerDetail.ts","frontend/src/views/finance/Index.vue","frontend/src/views/invoice-requests/Detail.vue","frontend/src/views/invoice-requests/Form.vue","frontend/src/views/invoice-requests/Index.vue","frontend/src/views/invoice-verification/Index.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Form.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/invoices/__tests__/invoices-g4.smoke.test.ts","frontend/src/views/orders/composables/useOrderTimeline.ts","frontend/src/views/payments/Index.vue","frontend/src/views/payments/PlanForm.vue","frontend/src/views/payments/Reconcile.vue","frontend/src/views/payments/RecordForm.vue","frontend/src/views/payments/__tests__/payments-g4.smoke.test.ts","frontend/src/views/payments/__tests__/payments-index.smoke.test.ts","frontend/src/views/reconciliation/Index.vue","frontend/src/views/reconciliation/__tests__/reconciliation-g4.smoke.test.ts","frontend/src/views/reconciliation/components/ImportStatementDialog.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/__tests__/stores-g4.smoke.test.ts","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-context-providers.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","scripts/start-all.sh","shared/src/types/models.ts"]},{"id":"fb31eb4edf1efdac80568bb37a05d8003d6ad876","message":"Enable pg_stat_statements and harden port checks\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb31eb4edf1efdac80568bb37a05d8003d6ad876","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:18:40-07:00","added":[],"removed":[],"modified":["deploy/postgres/postgresql.conf","scripts/start-all.sh"]},{"id":"da6251405efb0c4825f1305efcb1f17d8d931349","message":"Remove broken stray submodule entries from .claude/worktrees\n\n历史 commit 1f8ccb4bb 误把 4 个临时 worktree 目录作为 gitlink (mode 160000)\n登记进 index,但既无 .gitmodules 配置也无对应 .git 文件,是破损 submodule。\n本提交从 index 移除这 4 项,恢复 .claude/worktrees/ 仅承载真实 git worktree\n的状态。本地目录保留为空占位,不影响日常 worktree 创建与清理。\n\nRemoved:\n- .claude/worktrees/amazing-bhaskara-130540\n- .claude/worktrees/epic-jang\n- .claude/worktrees/hungry-montalcini-932ea7\n- .claude/worktrees/magical-blackburn\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/da6251405efb0c4825f1305efcb1f17d8d931349","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-10T06:01:11-07:00","added":[],"removed":[".claude/worktrees/amazing-bhaskara-130540",".claude/worktrees/epic-jang",".claude/worktrees/hungry-montalcini-932ea7",".claude/worktrees/magical-blackburn"],"modified":[]}],"total_commits":0,"head_commit":{"id":"cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","message":"Refresh outbox atomicity audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/cf8ca525a24f7e8f7f02481cf1c6e72f68c3788a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-11T09:43:33-07:00","added":[],"removed":[],"modified":["reports/outbox-atomicity-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":5249824,"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":19,"open_issues_count":0,"open_pr_counter":3,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-01T09:06: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
|
1778617242
|
1778617242
|
0
|
1778617241
|
1778617242
|
|
|
0
|
Edit
Delete
|