|
23141
|
ci(gitea): 修复 migration-safety run #23094 两处 GitHu ci(gitea): 修复 migration-safety run #23094 两处 GitHub→Gitea 行为差异...
|
6
|
5
|
ci.yml
|
23059
|
5
|
0
|
refs/pull/4/head
|
230f7616b5f0876ecd095ffd76c841876a8381ce
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":4,"pull_request":{"id":12,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4","number":4,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"fix(governance): Wave 4 解封 + capability-graph HIGH 清零 + vitest 7 项真回归","body":"## 模块治理摘要\n\n- 模块:`capability-graph` / `ai-review-queue` / `campaigns` / `marketing` / `quotes`\n- 战区:Wave 4(AI/Process 嵌入式闭环)+ harness 红线收口\n- lane:模块专项通过\n- 阶段:W4-T03/T06 解封 → Wave 4 收口\n- 分类:`模块专项通过`\n- 结论:W4-T06 状态 `PARTIAL → PASS`;harness `HIGH 3 → 0`;18 个原 stale baseline 失败文件 `373/373` 全绿\n- 战役卡:W4-T03(AI Review Queue 真实 DB 验收)\n- 验收卡:`docs/governance/ai-process-evidence-bundle-2026-05-10.md`\n- runner evidence bundle:commits `566b7fe1d` + `921a6ce55`\n\n## 关键变更\n\n### 1. W4-T03 真实 DB 验收解封\n- `tests/api/ai-review-queue.test.ts:204` + `:262` 两处 `listRes.body.data.data.some(...)` → `listRes.body.data.some(...)`,对齐 Governance 3.0 扁平 `paginated()` 契约 `{ data: [], meta: { pagination } }`\n- 真实 DB(`juhi-postgres-test:5433` / `juhi-redis-test:6380`)复跑 4/4 全绿(10.47s)\n- 覆盖:未认证 401 + 白名单守卫 + list/stats/claim/approve/reject 真实链路 + execution guard\n\n### 2. capability-graph HIGH 3 → 0\n- 新增 `HR_TRAINING_EVENTS.COMPETENCY_ASSESSMENT_CREATED / _DERIVED` 两个 event 常量\n- `kafka.ts` 新增 `hr_competency_assessment → HR_EVENTS` topic 映射\n- `assessByUser` (`:95`) + `deriveBehaviorBasedAssessment` (`:556`) 写入包进 `prisma.$transaction({tx =\u003e create + publishEvent(tx)})`,outbox 原子化\n- `event-publishing-audit` capability-graph 行:`none=1` → `full=1`\n\n### 3. vitest 7 项真回归修复\n背景:`reports/vitest.backend.latest.json` 是 2026-02-18 别的开发机产物,95 failures 绝大多数是 stale。复跑 18 个失败文件后只有 7 项真回归。\n\n| 文件 | 修复 |\n|---|---|\n| `marketing.service.test.ts` 完成执行中活动 | 补第 4 个 findFirst onceValue(assertTransition / update 状态校验 / ensureExistsById / refresh 四次调用) |\n| `quote.service.test.ts` 创建报价单 | biz-code mock 补 `createWithBizCodeRetry` / `generateBizCodes` / `generateBizId` |\n| `campaign.service.enhanced.test.ts` 5+6 项 | beforeEach 加 `findFirst/updateMany/findFirstOrThrow.mockReset()` 防 sticky 串扰;mock 补 `findFirstOrThrow`;8 处状态机生命周期/事件发布/取消测试补第 4 个 findFirst onceValue;execute 测试将第 3 个 findFirst onceValue 改为 findFirstOrThrow onceValue |\n\n剥离 stale 后真实回归 7 项,但 `mockReset()` 同时暴露 6 项原本被 sticky 状态掩盖的同类问题,一并修复(共 13 处 onceValue 补齐)。\n\n## 验证命令\n\n| 命令 | 结果 | 备注 |\n| --- | --- | --- |\n| `npx vitest run --workspace vitest.workspace.ts --project api tests/api/ai-review-queue.test.ts` | ✅ 4/4 passed (10.47s) | 真实 DB |\n| `npx vitest run --workspace vitest.workspace.ts --project unit src/modules/campaigns/campaign.service.enhanced.test.ts src/modules/marketing/marketing.service.test.ts tests/unit/services/quote.service.test.ts` | ✅ 3 files / 71+25 tests passed | unit |\n| `npx vitest run --project unit` (18 个 stale 失败文件全集) | ✅ 18 files / 373 tests passed | unit 回归 |\n| `npx tsx scripts/audit-prisma-zod-contract.ts` | ✅ PASS (length=0 / required=0 / enum=0) | |\n| `npx tsx scripts/audit-event-publishing.ts` | ✅ 99.01% 覆盖率,capability-graph 全覆盖 | |\n| `pnpm harness report` | ✅ CRITICAL=0 / HIGH=0 / MEDIUM=8 / total=6028 | HIGH 从 3 降 0 |\n| pre-commit Fast Gate (6 项) + Smart Gate (3 项���后端 type-check) | ✅ 全 PASS | NODE_OPTIONS=12G |\n\n## 审计命中\n\n- `audit:tenant`:未跑(变更未触及租户中间件)\n- `audit:events`:✅ 0 finding(capability-graph 修复后从 7 降 0)\n- `audit:route-contract`:未跑(变更未触及路由层)\n- `audit:docs-single-source`:未跑(仅 governance 增量;CLAUDE/AGENTS/README/GEMINI 同步待后续 owner PR)\n- `audit:prisma-zod-contract`:✅ 0 finding\n- `audit:state-machines`:✅ 0 finding\n\n## 前端 / 页面验收\n\n- canonical 入口:`/ai-agents/review-queue`(未变更,本 PR 只动 API 测试 + 后端)\n- smoke / auth-scope:未跑(无前端代码改动)\n- alias / compat 回归:N/A\n\n## 残余风险\n\n- 风险 1:harness 仍有 `MEDIUM=8`,全部来自既有 baseline 数据(迁移安全检查 5215 LOW 分类边界 / 业务时间流分析 117 INFO / 类型债务追踪 41),非本 PR 引入。CI 治理硬门禁(`HIGH+CRITICAL+MEDIUM \u003e 0`)会阻塞,需后续 owner 决定是否豁免或继续治理。\n- 风险 2:full unit suite 仍剩 28 个 *其他* test 文件 / 135 failures(dimension-transform / social-auto-replies / opportunity.machine.test label / rma / content-* 等),均与本 PR 无关,是更老的 pre-existing 失败。建议作为独立后续 PR 处理。\n- 风险 3:本 PR 修复的 `mockReset()` 模式应推广到其他使用 `prisma.$transaction` 的服务单测——下次治理可重点扫描。\n\n## 文档同步\n\n- [ ] `CLAUDE.md`\n- [ ] `AGENTS.md`\n- [ ] `README.md`\n- [ ] `GEMINI.md`\n- [x] 治理经验库:`docs/governance/ai-process-evidence-bundle-2026-05-10.md` 已升 PASS + 补 Real DB Suite + Test Contract Fix 章节\n\n## 口径确认\n\n- [x] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\n- [x] 若存在工作区漂移,已明确标记且未误记到当前模块(135 项其他失败已列入残余风险)\n- [x] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\n\n---\n\n\u003e ⚠️ GitHub 镜像 PR #51 因 Actions 账单问题阻塞,故改在 Gitea 创建本 PR 作为主验收入口。\n\n🤖 Generated with Claude Code","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":1,"additions":11655,"deletions":3943,"changed_files":231,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"534799e0b1707368df37aff7b3df545a6ca1064a","repo_id":6,"repo":{"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":5335808,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-15T11:22:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"head":{"label":"claude/bold-raman-0239cc","ref":"claude/bold-raman-0239cc","sha":"230f7616b5f0876ecd095ffd76c841876a8381ce","repo_id":6,"repo":{"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":5335808,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-15T11:22:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"merge_base":"534799e0b1707368df37aff7b3df545a6ca1064a","due_date":null,"created_at":"2026-05-13T21:41:57+08:00","updated_at":"2026-05-15T15:02:20+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5335808,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-15T11:22:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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"},"commit_id":"","review":null}...
|
pull_request
|
2
|
14
|
1778828542
|
1778831274
|
0
|
1778828542
|
1778831274
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/pull/4/head
|
1
|
Edit
Delete
|
|
23142
|
ci(gitea): 修复 migration-safety run #23094 两处 GitHu ci(gitea): 修复 migration-safety run #23094 两处 GitHub→Gitea 行为差异...
|
6
|
5
|
migration-safety.yml
|
23060
|
5
|
0
|
refs/pull/4/head
|
230f7616b5f0876ecd095ffd76c841876a8381ce
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":4,"pull_request":{"id":12,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4","number":4,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"fix(governance): Wave 4 解封 + capability-graph HIGH 清零 + vitest 7 项真回归","body":"## 模块治理摘要\n\n- 模块:`capability-graph` / `ai-review-queue` / `campaigns` / `marketing` / `quotes`\n- 战区:Wave 4(AI/Process 嵌入式闭环)+ harness 红线收口\n- lane:模块专项通过\n- 阶段:W4-T03/T06 解封 → Wave 4 收口\n- 分类:`模块专项通过`\n- 结论:W4-T06 状态 `PARTIAL → PASS`;harness `HIGH 3 → 0`;18 个原 stale baseline 失败文件 `373/373` 全绿\n- 战役卡:W4-T03(AI Review Queue 真实 DB 验收)\n- 验收卡:`docs/governance/ai-process-evidence-bundle-2026-05-10.md`\n- runner evidence bundle:commits `566b7fe1d` + `921a6ce55`\n\n## 关键变更\n\n### 1. W4-T03 真实 DB 验收解封\n- `tests/api/ai-review-queue.test.ts:204` + `:262` 两处 `listRes.body.data.data.some(...)` → `listRes.body.data.some(...)`,对齐 Governance 3.0 扁平 `paginated()` 契约 `{ data: [], meta: { pagination } }`\n- 真实 DB(`juhi-postgres-test:5433` / `juhi-redis-test:6380`)复跑 4/4 全绿(10.47s)\n- 覆盖:未认证 401 + 白名单守卫 + list/stats/claim/approve/reject 真实链路 + execution guard\n\n### 2. capability-graph HIGH 3 → 0\n- 新增 `HR_TRAINING_EVENTS.COMPETENCY_ASSESSMENT_CREATED / _DERIVED` 两个 event 常量\n- `kafka.ts` 新增 `hr_competency_assessment → HR_EVENTS` topic 映射\n- `assessByUser` (`:95`) + `deriveBehaviorBasedAssessment` (`:556`) 写入包进 `prisma.$transaction({tx =\u003e create + publishEvent(tx)})`,outbox 原子化\n- `event-publishing-audit` capability-graph 行:`none=1` → `full=1`\n\n### 3. vitest 7 项真回归修复\n背景:`reports/vitest.backend.latest.json` 是 2026-02-18 别的开发机产物,95 failures 绝大多数是 stale。复跑 18 个失败文件后只有 7 项真回归。\n\n| 文件 | 修复 |\n|---|---|\n| `marketing.service.test.ts` 完成执行中活动 | 补第 4 个 findFirst onceValue(assertTransition / update 状态校验 / ensureExistsById / refresh 四次调用) |\n| `quote.service.test.ts` 创建报价单 | biz-code mock 补 `createWithBizCodeRetry` / `generateBizCodes` / `generateBizId` |\n| `campaign.service.enhanced.test.ts` 5+6 项 | beforeEach 加 `findFirst/updateMany/findFirstOrThrow.mockReset()` 防 sticky 串扰;mock 补 `findFirstOrThrow`;8 处状态机生命周期/事件发布/取消测试补第 4 个 findFirst onceValue;execute 测试将第 3 个 findFirst onceValue 改为 findFirstOrThrow onceValue |\n\n剥离 stale 后真实回归 7 项,但 `mockReset()` 同时暴露 6 项原本被 sticky 状态掩盖的同类问题,一并修复(共 13 处 onceValue 补齐)。\n\n## 验证命令\n\n| 命令 | 结果 | 备注 |\n| --- | --- | --- |\n| `npx vitest run --workspace vitest.workspace.ts --project api tests/api/ai-review-queue.test.ts` | ✅ 4/4 passed (10.47s) | 真实 DB |\n| `npx vitest run --workspace vitest.workspace.ts --project unit src/modules/campaigns/campaign.service.enhanced.test.ts src/modules/marketing/marketing.service.test.ts tests/unit/services/quote.service.test.ts` | ✅ 3 files / 71+25 tests passed | unit |\n| `npx vitest run --project unit` (18 个 stale 失败文件全集) | ✅ 18 files / 373 tests passed | unit 回归 |\n| `npx tsx scripts/audit-prisma-zod-contract.ts` | ✅ PASS (length=0 / required=0 / enum=0) | |\n| `npx tsx scripts/audit-event-publishing.ts` | ✅ 99.01% 覆盖率,capability-graph 全覆盖 | |\n| `pnpm harness report` | ✅ CRITICAL=0 / HIGH=0 / MEDIUM=8 / total=6028 | HIGH 从 3 降 0 |\n| pre-commit Fast Gate (6 项) + Smart Gate (3 项���后端 type-check) | ✅ 全 PASS | NODE_OPTIONS=12G |\n\n## 审计命中\n\n- `audit:tenant`:未跑(变更未触及租户中间件)\n- `audit:events`:✅ 0 finding(capability-graph 修复后从 7 降 0)\n- `audit:route-contract`:未跑(变更未触及路由层)\n- `audit:docs-single-source`:未跑(仅 governance 增量;CLAUDE/AGENTS/README/GEMINI 同步待后续 owner PR)\n- `audit:prisma-zod-contract`:✅ 0 finding\n- `audit:state-machines`:✅ 0 finding\n\n## 前端 / 页面验收\n\n- canonical 入口:`/ai-agents/review-queue`(未变更,本 PR 只动 API 测试 + 后端)\n- smoke / auth-scope:未跑(无前端代码改动)\n- alias / compat 回归:N/A\n\n## 残余风险\n\n- 风险 1:harness 仍有 `MEDIUM=8`,全部来自既有 baseline 数据(迁移安全检查 5215 LOW 分类边界 / 业务时间流分析 117 INFO / 类型债务追踪 41),非本 PR 引入。CI 治理硬门禁(`HIGH+CRITICAL+MEDIUM \u003e 0`)会阻塞,需后续 owner 决定是否豁免或继续治理。\n- 风险 2:full unit suite 仍剩 28 个 *其他* test 文件 / 135 failures(dimension-transform / social-auto-replies / opportunity.machine.test label / rma / content-* 等),均与本 PR 无关,是更老的 pre-existing 失败。建议作为独立后续 PR 处理。\n- 风险 3:本 PR 修复的 `mockReset()` 模式应推广到其他使用 `prisma.$transaction` 的服务单测——下次治理可重点扫描。\n\n## 文档同步\n\n- [ ] `CLAUDE.md`\n- [ ] `AGENTS.md`\n- [ ] `README.md`\n- [ ] `GEMINI.md`\n- [x] 治理经验库:`docs/governance/ai-process-evidence-bundle-2026-05-10.md` 已升 PASS + 补 Real DB Suite + Test Contract Fix 章节\n\n## 口径确认\n\n- [x] 本 PR 只宣称模块级通过,不把模块结果外推为工作区全绿\n- [x] 若存在工作区漂移,已明确标记且未误记到当前模块(135 项其他失败已列入残余风险)\n- [x] 若存在热修 lane,已与全域补证据 / build-out lane 隔离\n\n---\n\n\u003e ⚠️ GitHub 镜像 PR #51 因 Actions 账单问题阻塞,故改在 Gitea 创建本 PR 作为主验收入口。\n\n🤖 Generated with Claude Code","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":1,"additions":11655,"deletions":3943,"changed_files":231,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/4.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"534799e0b1707368df37aff7b3df545a6ca1064a","repo_id":6,"repo":{"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":5335808,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-15T11:22:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"head":{"label":"claude/bold-raman-0239cc","ref":"claude/bold-raman-0239cc","sha":"230f7616b5f0876ecd095ffd76c841876a8381ce","repo_id":6,"repo":{"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":5335808,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-15T11:22:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"merge_base":"534799e0b1707368df37aff7b3df545a6ca1064a","due_date":null,"created_at":"2026-05-13T21:41:57+08:00","updated_at":"2026-05-15T15:02:20+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5335808,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-15T11:22:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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"},"commit_id":"","review":null}...
|
pull_request
|
2
|
4
|
1778829612
|
1778830497
|
0
|
1778828542
|
1778830497
|
|
|
0
|
Edit
Delete
|
|
23415
|
C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出
|
60
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
2358c119b985d2797496bd76d8683556005f5998
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2454d24e46f12337b9574f9d677ddf051fb17005","after":"2358c119b985d2797496bd76d8683556005f5998","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/2454d24e46f12337b9574f9d677ddf051fb17005...2358c119b985d2797496bd76d8683556005f5998","commits":[{"id":"2358c119b985d2797496bd76d8683556005f5998","message":"C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出\n\n远端 CI runtime job「Tests passed 0」判责:CI 无 TTY 时 turbo 任务日志\n可能走 stderr,本机 TTY 正常——输出口径分叉。测试数汇总改为解析\nstdout+stderr;解析为 0 时把原始输出尾巴打进失败日志(远端无法登机\n时可从 CI 日志直接定位)。本机 check:runtime 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2358c119b985d2797496bd76d8683556005f5998","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:32:52-07:00","added":[],"removed":[],"modified":["reports/alignment-models.latest.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"2358c119b985d2797496bd76d8683556005f5998","message":"C64c:runtime 编排解析 stdout+stderr 并补零解析判责输出\n\n远端 CI runtime job「Tests passed 0」判责:CI 无 TTY 时 turbo 任务日志\n可能走 stderr,本机 TTY 正常——输出口径分叉。测试数汇总改为解析\nstdout+stderr;解析为 0 时把原始输出尾巴打进失败日志(远端无法登机\n时可从 CI 日志直接定位)。本机 check:runtime 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2358c119b985d2797496bd76d8683556005f5998","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:32:52-07:00","added":[],"removed":[],"modified":["reports/alignment-models.latest.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/project-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3835,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.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-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:24:45+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
|
1784011200
|
0
|
1784010778
|
1784011200
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23414
|
C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker H C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker Hub 下架)...
|
60
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
2454d24e46f12337b9574f9d677ddf051fb17005
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1270a9b62cf64e8bf85e71686a39728438f36160","after":"2454d24e46f12337b9574f9d677ddf051fb17005","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/1270a9b62cf64e8bf85e71686a39728438f36160...2454d24e46f12337b9574f9d677ddf051fb17005","commits":[{"id":"2454d24e46f12337b9574f9d677ddf051fb17005","message":"C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker Hub 下架)\n\n首次远端 runtime job 实证 bitnami/minio:latest manifest unknown(Bitnami\n目录变更下架)。GH services 不支持启动命令,改为 step 直跑\n`docker run minio/minio server /data`——与 CLAUDE.md 本机口径同一条命令,\n消除第二套镜像来源。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2454d24e46f12337b9574f9d677ddf051fb17005","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:24:38-07:00","added":["reports/project-truth.latest.json","scripts/check-project-truth.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","package.json","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"2454d24e46f12337b9574f9d677ddf051fb17005","message":"C64b:CI MinIO 迁官方镜像 step(bitnami/minio 已从 Docker Hub 下架)\n\n首次远端 runtime job 实证 bitnami/minio:latest manifest unknown(Bitnami\n目录变更下架)。GH services 不支持启动命令,改为 step 直跑\n`docker run minio/minio server /data`——与 CLAUDE.md 本机口径同一条命令,\n消除第二套镜像来源。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/2454d24e46f12337b9574f9d677ddf051fb17005","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:24:38-07:00","added":["reports/project-truth.latest.json","scripts/check-project-truth.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","package.json","reports/alignment-models.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/lyra-prototype-parity.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3730,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.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-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:21:32+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
|
1784010778
|
0
|
1784010285
|
1784010778
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23416
|
C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)
|
60
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
262802ed1be2f708784260d2fd49e110a9c365f9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2358c119b985d2797496bd76d8683556005f5998","after":"262802ed1be2f708784260d2fd49e110a9c365f9","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/2358c119b985d2797496bd76d8683556005f5998...262802ed1be2f708784260d2fd49e110a9c365f9","commits":[{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3851,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.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-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:32: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
|
6
|
1784011490
|
1784011581
|
0
|
1784011200
|
1784011582
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23363
|
ci(gitea): 去 github.com 依赖,改 container+手动 Gitea ch ci(gitea): 去 github.com 依赖,改 container+手动 Gitea checkout...
|
6
|
5
|
ci.yml
|
23281
|
5
|
0
|
refs/pull/5/head
|
2d843a1a119ca0eda1a552c12468ff3840669487
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":5,"pull_request":{"id":13,"url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/5","number":5,"user":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"title":"feat: 培训管理种子 + MQL 评分规则 + Gitea CI 迁移","body":"对应 GitHub PR #52。\n\n- backend/prisma/seeds/22-hr-training-content.ts: 培训管理 12 张表种子\n- backend/prisma/seeds/23-lead-scoring-rules.ts: MQL 默认评分规则集(修复 /lead-qualification 评估 400)\n- .gitea/workflows/ci.yml: Gitea Actions CI(取代账户计费阻塞的 GitHub Actions)\n- frontend course-marketplace.ts: array-guard 修复\n- 已合并 origin/main 至 97a07d598,冲突全部解决\n\nGitHub Actions 已仓库级禁用,CI 迁移到本 Gitea PR 验证。","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":327261,"deletions":11627,"changed_files":706,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/5","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/5.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/5.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"534799e0b1707368df37aff7b3df545a6ca1064a","repo_id":6,"repo":{"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":5447233,"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":5,"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-16T08:05:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"head":{"label":"claude/festive-nobel-6b66e8","ref":"claude/festive-nobel-6b66e8","sha":"2d843a1a119ca0eda1a552c12468ff3840669487","repo_id":6,"repo":{"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":5447233,"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":5,"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-16T08:05:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"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":[]}},"merge_base":"534799e0b1707368df37aff7b3df545a6ca1064a","due_date":null,"created_at":"2026-05-16T06:44:47+08:00","updated_at":"2026-05-16T08:17:27+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5447233,"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":5,"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-16T08:05:16+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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"},"commit_id":"","review":null}...
|
pull_request
|
2
|
8
|
1778893294
|
1778893356
|
0
|
1778890649
|
1778893357
|
group: gitea-ci-${{ github.ref }}
cancel-in-progre group: gitea-ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
gitea-ci-refs/pull/5/head
|
1
|
Edit
Delete
|
|
23446
|
feat(governance): machineize docs-truth gate, fix feat(governance): machineize docs-truth gate, fix Fastify Redis parsing, harden test-base guard...
|
54
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
2fa1666f6bb69b7784199199afde715a54856ac8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f98acd04c6fe50956d8cf89552a352c8893f037d","after":"2fa1666f6bb69b7784199199afde715a54856ac8","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/f98acd04c6fe50956d8cf89552a352c8893f037d...2fa1666f6bb69b7784199199afde715a54856ac8","commits":[{"id":"2fa1666f6bb69b7784199199afde715a54856ac8","message":"feat(governance): machineize docs-truth gate, fix Fastify Redis parsing, harden test-base guard\n\n- Add check:docs-truth (C14 machineized): targeted assertions catching README/standards\n drift from runtime truth (dual-backend positioning, tenant-aware envelope shape, NestJS\n HTTP engine, ghost assets like commitlint/RHF), wired into pnpm check + governance ratchet.\n- Fix Fastify BullMQ Redis URL parsing to include password/db (C15), matching NestJS's\n parseRedisConnection; adds a check:dual-backend tripwire so this can't silently regress.\n Without this, authenticated/non-zero-db Redis environments would split pub/sub and\n BullMQ onto different logical Redis instances.\n- Close G15: check:runtime / check:ui preflight now requires explicit REDIS_URL (no more\n silent localhost:6379 default) and enforces a base_framework* db name convention, with\n GOVERNANCE_DB_NAME_OVERRIDE=1 as an explicit escape hatch.\n- Correct stale doc claims across README/docs/standards to match actual code (Fastify is a\n full dual-backend peer per ADR-0009, not an optional fallback; envelope carries tenantId;\n NestJS uses platform-express not the Fastify adapter; annotate unimplemented commitlint/RHF\n plans as not-yet-landed).\n- Refresh governance reports/baseline after re-running pnpm check and check:runtime (56/56).\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/2fa1666f6bb69b7784199199afde715a54856ac8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:11:05-07:00","added":["reports/docs-truth.latest.json","scripts/check-docs-truth.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/plugins/queue.ts","docs/README.md","docs/governance-experience.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","package.json","reports/baseline.json","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"8501dc9731b4f0f44ea36d2ffe557577354ebb31","message":"Refactor governance documentation structure\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/8501dc9731b4f0f44ea36d2ffe557577354ebb31","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T08:01:24-07:00","added":["docs/governance-experience.md"],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},{"id":"d799b176f2db4f3e538563eeb8228543d24ca639","message":"feat(runtime): close outbox failure governance gaps\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/d799b176f2db4f3e538563eeb8228543d24ca639","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-05T07:03:20-07:00","added":["apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/test/outbox.deadletter.test.ts"],"removed":["apps/web/src/hooks/useSSE.ts","apps/web/src/hooks/useWebSocket.ts"],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-nestjs/.env.example","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/store/realtime.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","packages/contracts/src/tenant.ts","reports/baseline.json","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/check-ui-acceptance.mjs"]},{"id":"43b8c8c943c406733084427f3ad27d836ae75681","message":"Update governance baseline for UI acceptance\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/43b8c8c943c406733084427f3ad27d836ae75681","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-04T23:37:30-07:00","added":[".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/skills/business-module-intake/SKILL.md",".github/workflows/governance.yml","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/playwright.config.ts","docs/domain/owner-matrix.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/tenant.ts","reports/dual-backend-parity.latest.json","reports/ui-acceptance.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-ui-acceptance.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/.env.example","apps/web/package.json","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","docs/adr/0009-dual-backend-governance-parity.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/check-runtime-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"2fa1666f6bb69b7784199199afde715a54856ac8","message":"feat(governance): machineize docs-truth gate, fix Fastify Redis parsing, harden test-base guard\n\n- Add check:docs-truth (C14 machineized): targeted assertions catching README/standards\n drift from runtime truth (dual-backend positioning, tenant-aware envelope shape, NestJS\n HTTP engine, ghost assets like commitlint/RHF), wired into pnpm check + governance ratchet.\n- Fix Fastify BullMQ Redis URL parsing to include password/db (C15), matching NestJS's\n parseRedisConnection; adds a check:dual-backend tripwire so this can't silently regress.\n Without this, authenticated/non-zero-db Redis environments would split pub/sub and\n BullMQ onto different logical Redis instances.\n- Close G15: check:runtime / check:ui preflight now requires explicit REDIS_URL (no more\n silent localhost:6379 default) and enforces a base_framework* db name convention, with\n GOVERNANCE_DB_NAME_OVERRIDE=1 as an explicit escape hatch.\n- Correct stale doc claims across README/docs/standards to match actual code (Fastify is a\n full dual-backend peer per ADR-0009, not an optional fallback; envelope carries tenantId;\n NestJS uses platform-express not the Fastify adapter; annotate unimplemented commitlint/RHF\n plans as not-yet-landed).\n- Refresh governance reports/baseline after re-running pnpm check and check:runtime (56/56).\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/2fa1666f6bb69b7784199199afde715a54856ac8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:11:05-07:00","added":["reports/docs-truth.latest.json","scripts/check-docs-truth.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/plugins/queue.ts","docs/README.md","docs/governance-experience.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","package.json","reports/baseline.json","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},"repository":{"id":54,"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":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":468,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.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-07-03T12:24:18+08:00","updated_at":"2026-07-03T12:24:32+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
|
6
|
1784707904
|
1784708025
|
0
|
1784707902
|
1784708027
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23427
|
feat: complete calibrated voiceprint workflow
|
62
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
32c70bb2198cf25b362a49e4f74387dd1a47768a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e795edf9d8130692c02ac8d6083ddbd41edcdc0c","after":"32c70bb2198cf25b362a49e4f74387dd1a47768a","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/e795edf9d8130692c02ac8d6083ddbd41edcdc0c...32c70bb2198cf25b362a49e4f74387dd1a47768a","commits":[{"id":"32c70bb2198cf25b362a49e4f74387dd1a47768a","message":"feat: complete calibrated voiceprint workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/32c70bb2198cf25b362a49e4f74387dd1a47768a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T22:19:23-07:00","added":["configs/voiceprint-calibration.json","reports/ui-audit-registration/01-disabled-registration.png","reports/ui-audit-registration/02-registration-validation-fixed.png","reports/ui-audit-registration/03-registration-validation-viewport.png","reports/voiceprint-calibration.latest.json","scripts/calibrate_voiceprint.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/audio_payload.py","src/speaker_embedding/calibration.py","tests/test_age_gender_sidecar.py","tests/test_calibration.py"],"removed":[],"modified":[".dockerignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/.env.vm.example","deploy/vm/Dockerfile.research","deploy/vm/Dockerfile.sidecar","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","docs/research-age-gender.md","package.json","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","pyproject.toml","reports/baseline.json","reports/contract-consumers.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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/deploy-vm.sh","scripts/governance-report.mjs","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_sidecar.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"32c70bb2198cf25b362a49e4f74387dd1a47768a","message":"feat: complete calibrated voiceprint workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/32c70bb2198cf25b362a49e4f74387dd1a47768a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T22:19:23-07:00","added":["configs/voiceprint-calibration.json","reports/ui-audit-registration/01-disabled-registration.png","reports/ui-audit-registration/02-registration-validation-fixed.png","reports/ui-audit-registration/03-registration-validation-viewport.png","reports/voiceprint-calibration.latest.json","scripts/calibrate_voiceprint.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/audio_payload.py","src/speaker_embedding/calibration.py","tests/test_age_gender_sidecar.py","tests/test_calibration.py"],"removed":[],"modified":[".dockerignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/.env.vm.example","deploy/vm/Dockerfile.research","deploy/vm/Dockerfile.sidecar","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","docs/research-age-gender.md","package.json","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","pyproject.toml","reports/baseline.json","reports/contract-consumers.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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/deploy-vm.sh","scripts/governance-report.mjs","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"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":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":918,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.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-07-15T08:42:42+08:00","updated_at":"2026-07-15T11:24:34+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
|
8
|
1784092782
|
1784092836
|
0
|
1784092781
|
1784092836
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
18561
|
Allow git merge in Claude settings
|
6
|
5
|
ci.yml
|
18481
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777426590
|
1777426772
|
0
|
1777426588
|
1777427168
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
18562
|
Allow git merge in Claude settings
|
6
|
5
|
e2e-tests.yml
|
18482
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777426773
|
1777427065
|
0
|
1777426589
|
1777427261
|
|
|
0
|
Edit
Delete
|
|
18563
|
Allow git merge in Claude settings
|
6
|
5
|
migration-safety.yml
|
18483
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777427072
|
1777427102
|
0
|
1777426590
|
1777427102
|
|
|
0
|
Edit
Delete
|
|
18564
|
Allow git merge in Claude settings
|
6
|
5
|
test-pipeline.yml
|
18484
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777427103
|
1777427164
|
0
|
1777426591
|
1777427425
|
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
|
|
18565
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18485
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777427169
|
1777427169
|
0
|
1777426850
|
1777427169
|
|
|
0
|
Edit
Delete
|
|
18566
|
Allow git merge in Claude settings
|
6
|
5
|
test-report.yml
|
18486
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-28T18:36:26-07:00","updated_at":"2026-04-28T18:36:26-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18562,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18562","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18562","display_title":"Allow git merge in Claude settings","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18482,"head_sha":"3852c841f557d197a777c094ed1243a8198cdf8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-29T09:39:33+08:00","completed_at":"2026-04-29T09:44:25+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777427262
|
1777427353
|
0
|
1777427071
|
1777427378
|
|
|
0
|
Edit
Delete
|
|
18567
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18487
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777427354
|
1777427355
|
0
|
1777427150
|
1777427355
|
|
|
0
|
Edit
Delete
|
|
18568
|
Allow git merge in Claude settings
|
6
|
5
|
deploy.yml
|
18488
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-28T18:36:26-07:00","updated_at":"2026-04-28T18:36:26-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18564,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","display_title":"Allow git merge in Claude settings","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18484,"head_sha":"3852c841f557d197a777c094ed1243a8198cdf8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-29T09:45:03+08:00","completed_at":"2026-04-29T09:46:04+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
26
|
1777427356
|
1777427421
|
0
|
1777427165
|
1777427422
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18569
|
Allow git merge in Claude settings
|
6
|
5
|
test-report.yml
|
18489
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-28T18:36:26-07:00","updated_at":"2026-04-28T18:36:26-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18562,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18562","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18562","display_title":"Allow git merge in Claude settings","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18482,"head_sha":"3852c841f557d197a777c094ed1243a8198cdf8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-29T09:39:33+08:00","completed_at":"2026-04-29T09:44:25+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777427370
|
1777427375
|
0
|
1777427262
|
1777427417
|
|
|
0
|
Edit
Delete
|
|
18570
|
Allow git merge in Claude settings
|
6
|
5
|
deploy.yml
|
18490
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-28T18:36:26-07:00","updated_at":"2026-04-28T18:36:26-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18564,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","display_title":"Allow git merge in Claude settings","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18484,"head_sha":"3852c841f557d197a777c094ed1243a8198cdf8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-29T09:45:03+08:00","completed_at":"2026-04-29T09:46:04+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
12
|
0
|
1777427425
|
0
|
1777427423
|
1777427427
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18571
|
Allow git merge in Claude settings
|
6
|
5
|
deploy.yml
|
18491
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-28T18:36:26-07:00","updated_at":"2026-04-28T18:36:26-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18564,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","display_title":"Allow git merge in Claude settings","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18484,"head_sha":"3852c841f557d197a777c094ed1243a8198cdf8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-29T09:45:03+08:00","completed_at":"2026-04-29T09:46:04+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
12
|
0
|
1777427429
|
0
|
1777427428
|
1777427431
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18572
|
Allow git merge in Claude settings
|
6
|
5
|
deploy.yml
|
18492
|
5
|
0
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-28T18:36:26-07:00","updated_at":"2026-04-28T18:36:26-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18564,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18564","display_title":"Allow git merge in Claude settings","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18484,"head_sha":"3852c841f557d197a777c094ed1243a8198cdf8e","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-29T09:45:03+08:00","completed_at":"2026-04-29T09:46:04+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5233766,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T09:36:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
1
|
40
|
1777427432
|
1777427455
|
0
|
1777427431
|
1777427455
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18573
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18493
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777427452
|
1777427452
|
0
|
1777427450
|
1777427452
|
|
|
0
|
Edit
Delete
|
|
18574
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18494
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777427750
|
1777427750
|
0
|
1777427750
|
1777427750
|
|
|
0
|
Edit
Delete
|
|
18575
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18495
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777428050
|
1777428051
|
0
|
1777428050
|
1777428051
|
|
|
0
|
Edit
Delete
|
|
18576
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18496
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777428350
|
1777428350
|
0
|
1777428350
|
1777428350
|
|
|
0
|
Edit
Delete
|
|
18577
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18497
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777428650
|
1777428651
|
0
|
1777428650
|
1777428651
|
|
|
0
|
Edit
Delete
|
|
18578
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18498
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777428950
|
1777428951
|
0
|
1777428950
|
1777428951
|
|
|
0
|
Edit
Delete
|
|
18579
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18499
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777429250
|
1777429251
|
0
|
1777429250
|
1777429251
|
|
|
0
|
Edit
Delete
|
|
18580
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18500
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777429550
|
1777429551
|
0
|
1777429550
|
1777429551
|
|
|
0
|
Edit
Delete
|
|
18581
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18501
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777429850
|
1777429851
|
0
|
1777429850
|
1777429851
|
|
|
0
|
Edit
Delete
|
|
18582
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18502
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777430150
|
1777430150
|
0
|
1777430150
|
1777430150
|
|
|
0
|
Edit
Delete
|
|
18583
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18503
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777430450
|
1777430451
|
0
|
1777430450
|
1777430451
|
|
|
0
|
Edit
Delete
|
|
18584
|
Allow git merge in Claude settings
|
6
|
5
|
health-check.yml
|
18504
|
-2
|
343
|
refs/heads/main
|
3852c841f557d197a777c094ed1243a8198cdf8e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"106c45ddee8406e0190ccbba4c3dcf6703cc6117","after":"3852c841f557d197a777c094ed1243a8198cdf8e","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/106c45ddee8406e0190ccbba4c3dcf6703cc6117...3852c841f557d197a777c094ed1243a8198cdf8e","commits":[{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.json"]},{"id":"d2338c76ded8ede28829e066e9801cffd24cd7fd","message":"Merge branch 'codex-ai-assist-action-packs'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d2338c76ded8ede28829e066e9801cffd24cd7fd","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:01-07:00","added":["backend/prisma/migrations/20260428060000_drift_recovery_p0a_rls_phase2/migration.sql","backend/prisma/migrations/20260428060100_drift_recovery_p0b_missing_tables/migration.sql","backend/prisma/migrations/20260428060200_drift_recovery_p1_add_columns/migration.sql","backend/prisma/migrations/20260428060500_drift_recovery_p3c_enum_alignment/migration.sql","backend/prisma/migrations/20260428070000_add_lead_pool_auto_dispatch_strategy/migration.sql","backend/prisma/migrations/20260428080000_tighten_currency_varchar/migration.sql","backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","backend/prisma/migrations_pending_review/README.md","backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/ai-assist/page-action-executor.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/ai-assist-context-provider-redact.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/ci-migration-deploy-gate.sh","scripts/sync-prisma-schema-mirror.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":[".claude/settings.json",".env.example",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/community.prisma","backend/prisma/schema/contracts.prisma","backend/prisma/schema/cpq.prisma","backend/prisma/schema/finance.prisma","backend/prisma/schema/leads.prisma","backend/prisma/schema/orders.prisma","backend/prisma/schema/service.prisma","backend/prisma/schema/stores.prisma","backend/prisma/schema/supply-chain.prisma","backend/prisma/schema/system.prisma","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/admin-settings/admin-settings.schema.ts","backend/src/modules/ai-agent-skills/skill-execution-engine.service.ts","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","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/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/page-capability.test.ts","backend/src/modules/ai-assist/page-capability.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-review-queue/ai-review-queue.service.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/campaign-use-case-templates/use-case-template.schema.ts","backend/src/modules/contract-templates/contract-template.schema.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.schema.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/lead-pools/lead-pools.docs.ts","backend/src/modules/lead-pools/lead-pools.mapper.ts","backend/src/modules/lead-pools/lead-pools.schema.ts","backend/src/modules/lead-pools/lead-pools.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.schema.ts","backend/src/modules/quotes/quote.schema.ts","backend/src/modules/renewal-tasks/renewal-task.schema.ts","backend/src/modules/roles/role.schema.ts","backend/src/modules/sample-requests/sample-request.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","backend/src/modules/tenant-configs/tenant-config.schema.ts","backend/src/shared/constants/statuses.ts","backend/tests/api/ai-assist.test.ts","backend/tests/api/ai-review-queue.test.ts","docs/governance/baseline-and-experience.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-04-28.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-04-28.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-04-28.md","docs/reports/view-audit-domains/a5-admin-center-2026-04-28.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-04-28.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-04-28.md","docs/reports/view-audit-domains/a8-system-center-2026-04-28.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-04-28.md","docs/reports/view-audit-full-matrix-2026-04-28.md","e2e/.auth/admin.json","e2e/playwright-report/index.html","frontend/.env.development","frontend/.env.example","frontend/package.json","frontend/src/api/modules/ai-assist.ts","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/api/modules/campaign-targets.ts","frontend/src/api/modules/events.ts","frontend/src/api/modules/lead-pools.ts","frontend/src/components/business/PageAIAssistDrawer.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/router/types.ts","frontend/src/services/eventBus.ts","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/abm-marketing/__tests__/abm-marketing.smoke.test.ts","frontend/src/views/ai-agents/review-queue/Index.vue","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/customer-journey-orchestration/Index.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/lead-pools/Form.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/social-posts/Detail.vue","frontend/src/views/store-configs/Form.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","mobile/.env.development","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.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/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/menu-inventory-audit.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/module-placeholder-audit.latest.json","reports/module-placeholder-audit.latest.md","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","scripts/audit-context-provider-redact.ts","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/audit-response-columns.ts","scripts/ci-migration-check.sh","scripts/harness/audit-registry.ts","scripts/sync-local-env.sh"]},{"id":"bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","message":"Align Prisma truth source and document formrules decisions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/bbf1f85eb2b823f39875ae6131d7f0986cd4d49f","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:35:35-07:00","added":["e2e/output/autopilot/ai_test_1777424021381/prepare-ok.json","e2e/output/autopilot/ai_test_1777424021381/result.json","e2e/output/autopilot/ai_test_1777424022537/result.json","e2e/output/autopilot/ai_test_1777424042064/prepare-ok.json","e2e/output/autopilot/ai_test_1777424042064/result.json","e2e/output/autopilot/ai_test_1777424274236/prepare-ok.json","e2e/output/autopilot/ai_test_1777424274236/result.json","e2e/output/autopilot/ai_test_1777424275358/result.json","e2e/output/autopilot/ai_test_1777424445747/prepare-ok.json","e2e/output/autopilot/ai_test_1777424445747/result.json","e2e/output/autopilot/ai_test_1777424648560/prepare-ok.json","e2e/output/autopilot/ai_test_1777424648560/result.json","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/error-context.md","e2e/test-results/crud-01-visible-menu-write-25883-写操作回放-当前可见主菜单页-当前可见页面动作契约回放-chromium/test-failed-1.png"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["e2e/playwright-report/index.html"]},{"id":"ede22d5f7acd681ea5ae1a18518c4126d2f8866b","message":"chore: governance收口 + 27张缺失表迁移 + enum对齐 + 内存上限提升\n\n- prisma-zod-contract / formrules-zod / enum-consistency 三项审计清零(HIGH=0)\n- tighten_varchar_phase3 补视图/policy 守卫后落档主目录;p3_type_constraints 退休归档\n- 新增 27 张 schema/ 真源已声明但 migration 缺失的建表迁移(member/groupbuy/analytics/system 四类)\n- statuses.ts 新增 BUSINESS_PRIORITY_LEVELS / APPROVAL_PRIORITY_LEVELS 双 canonical\n- 前端 enum label 反向对齐 backend canonical(supplier/target/social-post 共 5 处)\n- ai-autopilot 事务收口:写操作在 tx 内,read-back 在 tx 外;ai-test 同款修法\n- audit-enum-consistency / audit-formrules-zod 噪音降级(INFO 65→40 / backend-only 移到 coverage)\n- ci.yml harness report --save 确保 artifact 落盘;migration-safety.yml 同步收口\n- frontend Node 内存上限 12288→16384 MB(type-check / build / build:deploy 三条脚本)\n- docs/governance 更新迁移验收口径、schema 双源债、p3 退休理由\n\nCo-Authored-By: Claude Sonnet 4.6 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ede22d5f7acd681ea5ae1a18518c4126d2f8866b","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:34:57-07:00","added":["backend/prisma/migrations/20260428090000_tighten_varchar_phase3/migration.sql","backend/prisma/migrations/20260429100000_add_member_benefits_baseline/migration.sql","backend/prisma/migrations/20260429100100_add_member_levels_baseline/migration.sql","backend/prisma/migrations/20260429100200_add_member_points_baseline/migration.sql","backend/prisma/migrations/20260429100300_add_members_baseline/migration.sql","backend/prisma/migrations/20260429100400_add_customer_segments_baseline/migration.sql","backend/prisma/migrations/20260429100500_add_ad_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429100600_add_attribution_reports_baseline/migration.sql","backend/prisma/migrations/20260429100700_add_notification_configs_baseline/migration.sql","backend/prisma/migrations/20260429100800_add_qr_codes_baseline/migration.sql","backend/prisma/migrations/20260429100900_add_utm_tracking_records_baseline/migration.sql","backend/prisma/migrations/20260429101000_add_video_analytics_records_baseline/migration.sql","backend/prisma/migrations/20260429101100_add_video_content_baseline/migration.sql","backend/prisma/migrations/20260429101200_add_video_publishing_records_baseline/migration.sql","backend/prisma/migrations/20260429101300_add_channel_integrations_baseline/migration.sql","backend/prisma/migrations/20260429101400_add_abm_campaigns_baseline/migration.sql","backend/prisma/migrations/20260429101500_add_groupbuy_pricing_rules_baseline/migration.sql","backend/prisma/migrations/20260429101600_add_groupbuy_time_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101700_add_groupbuy_volume_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101800_add_groupbuy_tier_pricing_baseline/migration.sql","backend/prisma/migrations/20260429101900_add_groupbuy_demand_pricing_baseline/migration.sql","backend/prisma/migrations/20260429102000_add_groupbuy_bundles_baseline/migration.sql","backend/prisma/migrations/20260429102100_add_groupbuy_bundle_products_baseline/migration.sql","backend/prisma/migrations/20260429102200_add_local_events_baseline/migration.sql","backend/prisma/migrations/20260429102300_add_local_promotions_baseline/migration.sql","backend/prisma/migrations/20260429102400_add_state_machine_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102500_add_custom_field_definitions_baseline/migration.sql","backend/prisma/migrations/20260429102600_add_workflow_designs_baseline/migration.sql","docs/governance/archive/p3_type_constraints_retired_2026-04-29/RETIRED.md","docs/governance/archive/p3_type_constraints_retired_2026-04-29/migration.sql","docs/governance/formrules-zod-product-decisions-2026-04-29.md","e2e/tests/auth/ai-assist-smoke.spec.ts","reports/prisma-zod-contract-audit.2026-04-29.json","reports/prisma-zod-contract-audit.2026-04-29.md","scripts/sync-prisma-schema-mirror.ts"],"removed":[".claude/scheduled_tasks.lock","backend/prisma/migrations_pending_review/20260428060300_drift_recovery_p3_type_constraints/migration.sql","backend/prisma/migrations_pending_review/20260428090000_tighten_varchar_phase3/migration.sql"],"modified":[".claude/settings.json",".github/workflows/ci.yml",".github/workflows/migration-safety.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/package.json","backend/prisma/migrations_pending_review/README.md","backend/prisma/schema.prisma","backend/src/modules/ai-agents/ai-autopilot-ai-test.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/shared/constants/statuses.ts","docs/governance/baseline-and-experience.md","e2e/.auth/admin.json","frontend/package.json","frontend/src/views/social-posts/Detail.vue","frontend/src/views/supplier-management/StoreSuppliers.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Form.vue","frontend/src/views/targets/Detail.vue","output/playwright/full-menu-write-batches/ai-acquisition-content/batch-state.json","output/playwright/full-menu-write-batches/batch-summary.json","output/playwright/full-menu-write-batches/batch-summary.md","output/playwright/full-menu-write-batches/center-summary.json","output/playwright/full-menu-write-batches/center-summary.md","output/playwright/full-menu-write-batches/finance/batch-state.json","output/playwright/full-menu-write-batches/growth-sales-stores-service/batch-state.json","output/playwright/full-menu-write-batches/hr/batch-state.json","output/playwright/full-menu-write-batches/preflight.json","output/playwright/full-menu-write-batches/supply-chain/batch-state.json","output/playwright/full-menu-write-batches/synergy/batch-state.json","output/playwright/full-menu-write-batches/system-infra/batch-state.json","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/ai-assist-coverage.latest.json","reports/ai-assist-skill-binding.latest.json","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-enum-consistency.ts","scripts/audit-formrules-zod.ts","scripts/ci-migration-check.sh","scripts/ci-migration-deploy-gate.sh"]},{"id":"73367a67e894c06a03ec05ef20317873c15bc7ee","message":"Fix governance contract mismatches and module coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/73367a67e894c06a03ec05ef20317873c15bc7ee","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T10:43:21-07:00","added":["backend/src/modules/abm-marketing/abm-marketing.module-contract.test.ts","backend/src/modules/ad-analytics/ad-analytics.module-contract.test.ts","backend/src/modules/attribution-models/attribution-models.module-contract.test.ts","backend/src/modules/attribution-reports/attribution-reports.module-contract.test.ts","backend/src/modules/channel-integrations/channel-integrations.module-contract.test.ts","backend/src/modules/customer-segmentation/customer-segmentation.module-contract.test.ts","backend/src/modules/lead-assignment/lead-assignment.module-contract.test.ts","backend/src/modules/lead-scoring/lead-scoring.module-contract.test.ts","backend/src/modules/local-events/local-events.module-contract.test.ts","backend/src/modules/local-promotion/local-promotion.module-contract.test.ts","backend/src/modules/member-benefits/member-benefits.module-contract.test.ts","backend/src/modules/member-levels/member-levels.module-contract.test.ts","backend/src/modules/member-points/member-points.module-contract.test.ts","backend/src/modules/members/members.module-contract.test.ts","backend/src/modules/notification-configs/notification-configs.module-contract.test.ts","backend/src/modules/product-categories/product-categories.module-contract.test.ts","backend/src/modules/qr-codes/qr-codes.module-contract.test.ts","backend/src/modules/social-matrix/social-matrix.module-contract.test.ts","backend/src/modules/store-configs/store-configs.module-contract.test.ts","backend/src/modules/supplier-center/supplier-center.module-contract.test.ts","backend/src/modules/utm-tracking/utm-tracking.module-contract.test.ts","backend/src/modules/video-analytics/video-analytics.module-contract.test.ts","backend/src/modules/video-content/video-content.module-contract.test.ts","backend/src/modules/video-publishing/video-publishing.module-contract.test.ts","backend/src/modules/workflow-designer/workflow-designer.module-contract.test.ts"],"removed":[],"modified":[".claude/settings.json","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/scripts/audit-prisma-zod-contract.ts","backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/alliance-campaigns/alliance-campaign.schema.ts","backend/src/modules/quotes/quote.schema.ts","docs/governance/baseline-and-experience.md","frontend/src/api/modules/alliance-agreements.ts","frontend/src/api/modules/alliance-campaigns.ts","frontend/src/views/campaign-use-case-templates/Form.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/landing-pages/Form.vue","frontend/src/views/sample-requests/Form.vue","frontend/src/views/store-configs/Form.vue","reports/enum-consistency-audit.latest.json","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/harness-dashboard.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/prisma-zod-contract-audit.2026-04-28.json","reports/prisma-zod-contract-audit.2026-04-28.md","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/type-debt-audit.latest.json","scripts/audit-response-columns.ts"]}],"total_commits":0,"head_commit":{"id":"3852c841f557d197a777c094ed1243a8198cdf8e","message":"Allow git merge in Claude settings\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3852c841f557d197a777c094ed1243a8198cdf8e","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T18:36:26-07:00","added":[],"removed":[],"modified":[".claude/settings.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":5232338,"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":17,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-29T01:43:35+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
|
1777430750
|
1777430751
|
0
|
1777430750
|
1777430751
|
|
|
0
|
Edit
Delete
|
|
17762
|
ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 P ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁...
|
6
|
5
|
ci.yml
|
17683
|
5
|
0
|
refs/heads/main
|
39b8a4e31ee1b00ff5da03fd301042d13d8d1203
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","after":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c...39b8a4e31ee1b00ff5da03fd301042d13d8d1203","commits":[{"id":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","message":"ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁\n\n.github/workflows/ci.yml:\n- 新增 governance-audit job: 跑 audit:prisma-zod-contract / audit:formrules-zod / audit:response-columns / audit:field-payload / audit:enum-consistency + pnpm harness report 聚合 dashboard\n- 单项审计 continue-on-error: true,最终判定权统一交给 harness-dashboard.summary.high+critical\n- HIGH+CRITICAL \u003e 0 直接 exit 1 阻塞 PR;上传所有 audit JSON artifact + 写 step summary 表格供 reviewer 直读\n- build job 的 needs 加入 governance-audit,确保 main 推送的镜像产物必经治理门禁\n\nCLAUDE.md: 同步追加\"CI 治理门禁经验\"段,明确\"绝不直接调高门禁阈值,要放宽改 adapter/audit severity 映射\"治理纪律。\n\n锁住本会话治理成果——6 类 audit 盲区填补 + 4 类真业务 P1/bug 收口,新 PR 引入新 HIGH 时立即被拦下。\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/39b8a4e31ee1b00ff5da03fd301042d13d8d1203","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:43:55-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml","CLAUDE.md"]},{"id":"fc67c3eb51e91a01749234e389fcda8c5769bec5","message":"feat(harness): audit-response-columns 改 import-aware,自动反推真实数据源消除 46 处 view-API 错位误判\n\nscripts/audit-response-columns.ts:\n- 新增 extractApiModuleFromImports(filePath):解析 view 顶部 `import { xxxApi } from '@/api/modules/\u003cx\u003e'` 取首个 API 模块名\n- 主流程构建 viewModule → apiModule 映射;audit 时优先用 apiModule 查找 Prisma model 与 service include,失败回退 view 目录名\n\n仓库实际有 46 处 view 目录-API 模块错位(attribution-models→attribution / abm-marketing→campaign-targets / social-matrix→marketing-matrix / approval-configs→approval-templates 等);以前 audit 会把这 46 个 view 的列 prop 全部按错的 Prisma 表做比对,造成大量误报或漏报真 bug。改 import-aware 后自动用真实数据源做比对,不再需要手动加白名单。\n\nCLAUDE.md: 同步更新\"前端 view 目录与实际 API 模块错位经验\"段,记录 46 处实际错位案例与新增 import-aware 实现。\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/fc67c3eb51e91a01749234e389fcda8c5769bec5","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:40:34-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/audit-response-columns.ts"]},{"id":"7e9897cf29abcfd1772faa00d204616200f0ab93","message":"fix(schema): 收口 formrules-zod 9 项 MEDIUM,前后端 description/category/name 全栈对齐\n\n5 处 description Zod max 收紧(前端早就 maxlength=500,后端 2000 是历史遗留):\n- attribution-models / customer-segmentation / lead-assignment / lead-scoring / store-configs:\n description Zod max(2000) → max(500),反向对齐前端 UX 上限\n\nai-agents skill-library FormRules 放宽到 Zod 上限:\n- skill-library/Form.vue: category FormRules max=50 → 100,对齐 Zod max(100)(category 50 字过紧)\n\nchannel-integrations Form 全栈对齐 Zod:\n- Form.vue: FormRules min=2/max=100 → min=1/max=200,maxlength=\"100\" → \"200\"\n 对齐 Zod min(1).max(200),原 min=2 拒绝 1 字符是过度严格\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/7e9897cf29abcfd1772faa00d204616200f0ab93","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:36:20-07:00","added":[],"removed":[],"modified":["backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/channel-integrations/Form.vue"]},{"id":"aba788bb6011125e1178d038c14f936480380368","message":"docs(governance): 追加 P1-P6 治理经验补充段(dashboard/adapter/audit 盲区/字段错位/maxlength/grade 联动)\n\n新增 5 段经验补充(2026-04-26):\n- Harness Dashboard / Adapter 一致性: dashboard 与 audit latest.json 时间戳必须同步;adapter 字段名严格对齐审计 JSON 真实 key;severity 按 audit raw severity 分级。\n- Prisma↔Zod 审计盲区: 4 类系统性盲区(嵌套子 schema 误匹配 / camel-snake 双计数 / .refine 后置约束 / service 层 auto-gen 字段)的识别与豁免规则。\n- 前端 view 目录与 API 模块错位: approval-configs/Index.vue 实际调 approvalTemplatesApi 这类目录-模块错位的治理路径与 audit 增强建议。\n- Form maxlength 同步: Zod .max(N) 改动必须同步 el-input maxlength;Zod 校验和 maxlength 是不同阶段(提交 vs 输入)。\n- Grade hasEventPublishing 与 moduleType 联动: BaseService 派生识别 + manifest moduleType 双重通路;CRUD 模块缺事件应补 publishEvent 而非加豁免。\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/aba788bb6011125e1178d038c14f936480380368","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:32:19-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"744548892f552934566e0879669c2aeb0829fe7d","message":"fix(schema): 收口 Prisma↔Zod 长度真 P1 + 同步前端 maxlength + 修 approval-configs 列名\n\n真 P1 收口(Zod max \u003e Prisma VarChar,DB 会拒绝写入):\n- alliance-agreements.content: Zod max(10000) → max(5000) 对齐 Prisma VarChar(5000)\n- product-categories.description: Zod max(2000) → max(500) 对齐 Prisma VarChar(500)\n\n前端 maxlength 同步(formrules-zod HIGH 4 项收口):\n- alliance-agreements/Form.vue: content maxlength=\"10000\"→\"5000\"\n- lead-scoring/Form.vue: field 字段 maxlength=\"100\", value 字段 maxlength=\"500\"\n- product-categories/Index.vue: 分类名 maxlength=\"200\"\n- supplier-center/Index.vue: 供应商名 maxlength=\"200\"\n\n真 bug 修复(response-columns HIGH 1 项):\n- approval-configs/Index.vue: prop=\"objectType\" / row.objectType / 查询参数 objectType 全部改为 entityType。原列名在 Prisma model 不存在且 API 返回字段是 entityType,原列永远显示空——是真 bug 不是审计噪声。\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/744548892f552934566e0879669c2aeb0829fe7d","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:32:04-07:00","added":[],"removed":[],"modified":["backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/product-categories/product-categories.schema.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/supplier-center/Index.vue"]}],"total_commits":0,"head_commit":{"id":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","message":"ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁\n\n.github/workflows/ci.yml:\n- 新增 governance-audit job: 跑 audit:prisma-zod-contract / audit:formrules-zod / audit:response-columns / audit:field-payload / audit:enum-consistency + pnpm harness report 聚合 dashboard\n- 单项审计 continue-on-error: true,最终判定权统一交给 harness-dashboard.summary.high+critical\n- HIGH+CRITICAL \u003e 0 直接 exit 1 阻塞 PR;上传所有 audit JSON artifact + 写 step summary 表格供 reviewer 直读\n- build job 的 needs 加入 governance-audit,确保 main 推送的镜像产物必经治理门禁\n\nCLAUDE.md: 同步追加\"CI 治理门禁经验\"段,明确\"绝不直接调高门禁阈值,要放宽改 adapter/audit severity 映射\"治理纪律。\n\n锁住本会话治理成果——6 类 audit 盲区填补 + 4 类真业务 P1/bug 收口,新 PR 引入新 HIGH 时立即被拦下。\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/39b8a4e31ee1b00ff5da03fd301042d13d8d1203","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:43:55-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml","CLAUDE.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218150,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:22:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
7
|
0
|
1777222086
|
0
|
1777221954
|
1777222086
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
17763
|
ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 P ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁...
|
6
|
5
|
e2e-tests.yml
|
17684
|
5
|
0
|
refs/heads/main
|
39b8a4e31ee1b00ff5da03fd301042d13d8d1203
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","after":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c...39b8a4e31ee1b00ff5da03fd301042d13d8d1203","commits":[{"id":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","message":"ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁\n\n.github/workflows/ci.yml:\n- 新增 governance-audit job: 跑 audit:prisma-zod-contract / audit:formrules-zod / audit:response-columns / audit:field-payload / audit:enum-consistency + pnpm harness report 聚合 dashboard\n- 单项审计 continue-on-error: true,最终判定权统一交给 harness-dashboard.summary.high+critical\n- HIGH+CRITICAL \u003e 0 直接 exit 1 阻塞 PR;上传所有 audit JSON artifact + 写 step summary 表格供 reviewer 直读\n- build job 的 needs 加入 governance-audit,确保 main 推送的镜像产物必经治理门禁\n\nCLAUDE.md: 同步追加\"CI 治理门禁经验\"段,明确\"绝不直接调高门禁阈值,要放宽改 adapter/audit severity 映射\"治理纪律。\n\n锁住本会话治理成果——6 类 audit 盲区填补 + 4 类真业务 P1/bug 收口,新 PR 引入新 HIGH 时立即被拦下。\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/39b8a4e31ee1b00ff5da03fd301042d13d8d1203","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:43:55-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml","CLAUDE.md"]},{"id":"fc67c3eb51e91a01749234e389fcda8c5769bec5","message":"feat(harness): audit-response-columns 改 import-aware,自动反推真实数据源消除 46 处 view-API 错位误判\n\nscripts/audit-response-columns.ts:\n- 新增 extractApiModuleFromImports(filePath):解析 view 顶部 `import { xxxApi } from '@/api/modules/\u003cx\u003e'` 取首个 API 模块名\n- 主流程构建 viewModule → apiModule 映射;audit 时优先用 apiModule 查找 Prisma model 与 service include,失败回退 view 目录名\n\n仓库实际有 46 处 view 目录-API 模块错位(attribution-models→attribution / abm-marketing→campaign-targets / social-matrix→marketing-matrix / approval-configs→approval-templates 等);以前 audit 会把这 46 个 view 的列 prop 全部按错的 Prisma 表做比对,造成大量误报或漏报真 bug。改 import-aware 后自动用真实数据源做比对,不再需要手动加白名单。\n\nCLAUDE.md: 同步更新\"前端 view 目录与实际 API 模块错位经验\"段,记录 46 处实际错位案例与新增 import-aware 实现。\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/fc67c3eb51e91a01749234e389fcda8c5769bec5","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:40:34-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/audit-response-columns.ts"]},{"id":"7e9897cf29abcfd1772faa00d204616200f0ab93","message":"fix(schema): 收口 formrules-zod 9 项 MEDIUM,前后端 description/category/name 全栈对齐\n\n5 处 description Zod max 收紧(前端早就 maxlength=500,后端 2000 是历史遗留):\n- attribution-models / customer-segmentation / lead-assignment / lead-scoring / store-configs:\n description Zod max(2000) → max(500),反向对齐前端 UX 上限\n\nai-agents skill-library FormRules 放宽到 Zod 上限:\n- skill-library/Form.vue: category FormRules max=50 → 100,对齐 Zod max(100)(category 50 字过紧)\n\nchannel-integrations Form 全栈对齐 Zod:\n- Form.vue: FormRules min=2/max=100 → min=1/max=200,maxlength=\"100\" → \"200\"\n 对齐 Zod min(1).max(200),原 min=2 拒绝 1 字符是过度严格\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/7e9897cf29abcfd1772faa00d204616200f0ab93","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:36:20-07:00","added":[],"removed":[],"modified":["backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/channel-integrations/Form.vue"]},{"id":"aba788bb6011125e1178d038c14f936480380368","message":"docs(governance): 追加 P1-P6 治理经验补充段(dashboard/adapter/audit 盲区/字段错位/maxlength/grade 联动)\n\n新增 5 段经验补充(2026-04-26):\n- Harness Dashboard / Adapter 一致性: dashboard 与 audit latest.json 时间戳必须同步;adapter 字段名严格对齐审计 JSON 真实 key;severity 按 audit raw severity 分级。\n- Prisma↔Zod 审计盲区: 4 类系统性盲区(嵌套子 schema 误匹配 / camel-snake 双计数 / .refine 后置约束 / service 层 auto-gen 字段)的识别与豁免规则。\n- 前端 view 目录与 API 模块错位: approval-configs/Index.vue 实际调 approvalTemplatesApi 这类目录-模块错位的治理路径与 audit 增强建议。\n- Form maxlength 同步: Zod .max(N) 改动必须同步 el-input maxlength;Zod 校验和 maxlength 是不同阶段(提交 vs 输入)。\n- Grade hasEventPublishing 与 moduleType 联动: BaseService 派生识别 + manifest moduleType 双重通路;CRUD 模块缺事件应补 publishEvent 而非加豁免。\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/aba788bb6011125e1178d038c14f936480380368","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:32:19-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"744548892f552934566e0879669c2aeb0829fe7d","message":"fix(schema): 收口 Prisma↔Zod 长度真 P1 + 同步前端 maxlength + 修 approval-configs 列名\n\n真 P1 收口(Zod max \u003e Prisma VarChar,DB 会拒绝写入):\n- alliance-agreements.content: Zod max(10000) → max(5000) 对齐 Prisma VarChar(5000)\n- product-categories.description: Zod max(2000) → max(500) 对齐 Prisma VarChar(500)\n\n前端 maxlength 同步(formrules-zod HIGH 4 项收口):\n- alliance-agreements/Form.vue: content maxlength=\"10000\"→\"5000\"\n- lead-scoring/Form.vue: field 字段 maxlength=\"100\", value 字段 maxlength=\"500\"\n- product-categories/Index.vue: 分类名 maxlength=\"200\"\n- supplier-center/Index.vue: 供应商名 maxlength=\"200\"\n\n真 bug 修复(response-columns HIGH 1 项):\n- approval-configs/Index.vue: prop=\"objectType\" / row.objectType / 查询参数 objectType 全部改为 entityType。原列名在 Prisma model 不存在且 API 返回字段是 entityType,原列永远显示空——是真 bug 不是审计噪声。\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/744548892f552934566e0879669c2aeb0829fe7d","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:32:04-07:00","added":[],"removed":[],"modified":["backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/product-categories/product-categories.schema.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/supplier-center/Index.vue"]}],"total_commits":0,"head_commit":{"id":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","message":"ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁\n\n.github/workflows/ci.yml:\n- 新增 governance-audit job: 跑 audit:prisma-zod-contract / audit:formrules-zod / audit:response-columns / audit:field-payload / audit:enum-consistency + pnpm harness report 聚合 dashboard\n- 单项审计 continue-on-error: true,最终判定权统一交给 harness-dashboard.summary.high+critical\n- HIGH+CRITICAL \u003e 0 直接 exit 1 阻塞 PR;上传所有 audit JSON artifact + 写 step summary 表格供 reviewer 直读\n- build job 的 needs 加入 governance-audit,确保 main 推送的镜像产物必经治理门禁\n\nCLAUDE.md: 同步追加\"CI 治理门禁经验\"段,明确\"绝不直接调高门禁阈值,要放宽改 adapter/audit severity 映射\"治理纪律。\n\n锁住本会话治理成果——6 类 audit 盲区填补 + 4 类真业务 P1/bug 收口,新 PR 引入新 HIGH 时立即被拦下。\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/39b8a4e31ee1b00ff5da03fd301042d13d8d1203","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:43:55-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml","CLAUDE.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218150,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:22:11+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
|
1777224042
|
1777224183
|
0
|
1777221955
|
1777225149
|
|
|
0
|
Edit
Delete
|
|
17764
|
ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 P ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁...
|
6
|
5
|
deploy.yml
|
17686
|
5
|
0
|
refs/heads/main
|
39b8a4e31ee1b00ff5da03fd301042d13d8d1203
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-26T09:43:55-07:00","updated_at":"2026-04-26T09:43:55-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":17755,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/17755","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/17755","display_title":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":17675,"head_sha":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218382,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:22:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"cancelled","started_at":"1970-01-01T08:00:00+08:00","completed_at":"2026-04-27T00:45:56+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218382,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:22:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
12
|
0
|
1777222095
|
0
|
1777221964
|
1777222097
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
17765
|
ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 P ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁...
|
6
|
5
|
test-pipeline.yml
|
17685
|
5
|
0
|
refs/heads/main
|
39b8a4e31ee1b00ff5da03fd301042d13d8d1203
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","after":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c...39b8a4e31ee1b00ff5da03fd301042d13d8d1203","commits":[{"id":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","message":"ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁\n\n.github/workflows/ci.yml:\n- 新增 governance-audit job: 跑 audit:prisma-zod-contract / audit:formrules-zod / audit:response-columns / audit:field-payload / audit:enum-consistency + pnpm harness report 聚合 dashboard\n- 单项审计 continue-on-error: true,最终判定权统一交给 harness-dashboard.summary.high+critical\n- HIGH+CRITICAL \u003e 0 直接 exit 1 阻塞 PR;上传所有 audit JSON artifact + 写 step summary 表格供 reviewer 直读\n- build job 的 needs 加入 governance-audit,确保 main 推送的镜像产物必经治理门禁\n\nCLAUDE.md: 同步追加\"CI 治理门禁经验\"段,明确\"绝不直接调高门禁阈值,要放宽改 adapter/audit severity 映射\"治理纪律。\n\n锁住本会话治理成果——6 类 audit 盲区填补 + 4 类真业务 P1/bug 收口,新 PR 引入新 HIGH 时立即被拦下。\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/39b8a4e31ee1b00ff5da03fd301042d13d8d1203","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:43:55-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml","CLAUDE.md"]},{"id":"fc67c3eb51e91a01749234e389fcda8c5769bec5","message":"feat(harness): audit-response-columns 改 import-aware,自动反推真实数据源消除 46 处 view-API 错位误判\n\nscripts/audit-response-columns.ts:\n- 新增 extractApiModuleFromImports(filePath):解析 view 顶部 `import { xxxApi } from '@/api/modules/\u003cx\u003e'` 取首个 API 模块名\n- 主流程构建 viewModule → apiModule 映射;audit 时优先用 apiModule 查找 Prisma model 与 service include,失败回退 view 目录名\n\n仓库实际有 46 处 view 目录-API 模块错位(attribution-models→attribution / abm-marketing→campaign-targets / social-matrix→marketing-matrix / approval-configs→approval-templates 等);以前 audit 会把这 46 个 view 的列 prop 全部按错的 Prisma 表做比对,造成大量误报或漏报真 bug。改 import-aware 后自动用真实数据源做比对,不再需要手动加白名单。\n\nCLAUDE.md: 同步更新\"前端 view 目录与实际 API 模块错位经验\"段,记录 46 处实际错位案例与新增 import-aware 实现。\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/fc67c3eb51e91a01749234e389fcda8c5769bec5","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:40:34-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/audit-response-columns.ts"]},{"id":"7e9897cf29abcfd1772faa00d204616200f0ab93","message":"fix(schema): 收口 formrules-zod 9 项 MEDIUM,前后端 description/category/name 全栈对齐\n\n5 处 description Zod max 收紧(前端早就 maxlength=500,后端 2000 是历史遗留):\n- attribution-models / customer-segmentation / lead-assignment / lead-scoring / store-configs:\n description Zod max(2000) → max(500),反向对齐前端 UX 上限\n\nai-agents skill-library FormRules 放宽到 Zod 上限:\n- skill-library/Form.vue: category FormRules max=50 → 100,对齐 Zod max(100)(category 50 字过紧)\n\nchannel-integrations Form 全栈对齐 Zod:\n- Form.vue: FormRules min=2/max=100 → min=1/max=200,maxlength=\"100\" → \"200\"\n 对齐 Zod min(1).max(200),原 min=2 拒绝 1 字符是过度严格\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/7e9897cf29abcfd1772faa00d204616200f0ab93","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:36:20-07:00","added":[],"removed":[],"modified":["backend/src/modules/attribution-models/attribution-models.schema.ts","backend/src/modules/customer-segmentation/customer-segmentation.schema.ts","backend/src/modules/lead-assignment/lead-assignment.schema.ts","backend/src/modules/lead-scoring/lead-scoring.schema.ts","backend/src/modules/store-configs/store-configs.schema.ts","frontend/src/views/ai-agents/skill-library/Form.vue","frontend/src/views/channel-integrations/Form.vue"]},{"id":"aba788bb6011125e1178d038c14f936480380368","message":"docs(governance): 追加 P1-P6 治理经验补充段(dashboard/adapter/audit 盲区/字段错位/maxlength/grade 联动)\n\n新增 5 段经验补充(2026-04-26):\n- Harness Dashboard / Adapter 一致性: dashboard 与 audit latest.json 时间戳必须同步;adapter 字段名严格对齐审计 JSON 真实 key;severity 按 audit raw severity 分级。\n- Prisma↔Zod 审计盲区: 4 类系统性盲区(嵌套子 schema 误匹配 / camel-snake 双计数 / .refine 后置约束 / service 层 auto-gen 字段)的识别与豁免规则。\n- 前端 view 目录与 API 模块错位: approval-configs/Index.vue 实际调 approvalTemplatesApi 这类目录-模块错位的治理路径与 audit 增强建议。\n- Form maxlength 同步: Zod .max(N) 改动必须同步 el-input maxlength;Zod 校验和 maxlength 是不同阶段(提交 vs 输入)。\n- Grade hasEventPublishing 与 moduleType 联动: BaseService 派生识别 + manifest moduleType 双重通路;CRUD 模块缺事件应补 publishEvent 而非加豁免。\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/aba788bb6011125e1178d038c14f936480380368","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:32:19-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"744548892f552934566e0879669c2aeb0829fe7d","message":"fix(schema): 收口 Prisma↔Zod 长度真 P1 + 同步前端 maxlength + 修 approval-configs 列名\n\n真 P1 收口(Zod max \u003e Prisma VarChar,DB 会拒绝写入):\n- alliance-agreements.content: Zod max(10000) → max(5000) 对齐 Prisma VarChar(5000)\n- product-categories.description: Zod max(2000) → max(500) 对齐 Prisma VarChar(500)\n\n前端 maxlength 同步(formrules-zod HIGH 4 项收口):\n- alliance-agreements/Form.vue: content maxlength=\"10000\"→\"5000\"\n- lead-scoring/Form.vue: field 字段 maxlength=\"100\", value 字段 maxlength=\"500\"\n- product-categories/Index.vue: 分类名 maxlength=\"200\"\n- supplier-center/Index.vue: 供应商名 maxlength=\"200\"\n\n真 bug 修复(response-columns HIGH 1 项):\n- approval-configs/Index.vue: prop=\"objectType\" / row.objectType / 查询参数 objectType 全部改为 entityType。原列名在 Prisma model 不存在且 API 返回字段是 entityType,原列永远显示空——是真 bug 不是审计噪声。\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/744548892f552934566e0879669c2aeb0829fe7d","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:32:04-07:00","added":[],"removed":[],"modified":["backend/src/modules/alliance-agreements/alliance-agreement.schema.ts","backend/src/modules/product-categories/product-categories.schema.ts","frontend/src/views/alliance-agreements/Form.vue","frontend/src/views/approval-configs/Index.vue","frontend/src/views/lead-scoring/Form.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/supplier-center/Index.vue"]}],"total_commits":0,"head_commit":{"id":"39b8a4e31ee1b00ff5da03fd301042d13d8d1203","message":"ci(harness): 新增 governance-audit job 把 HIGH=0 锁为 PR/main 硬门禁\n\n.github/workflows/ci.yml:\n- 新增 governance-audit job: 跑 audit:prisma-zod-contract / audit:formrules-zod / audit:response-columns / audit:field-payload / audit:enum-consistency + pnpm harness report 聚合 dashboard\n- 单项审计 continue-on-error: true,最终判定权统一交给 harness-dashboard.summary.high+critical\n- HIGH+CRITICAL \u003e 0 直接 exit 1 阻塞 PR;上传所有 audit JSON artifact + 写 step summary 表格供 reviewer 直读\n- build job 的 needs 加入 governance-audit,确保 main 推送的镜像产物必经治理门禁\n\nCLAUDE.md: 同步追加\"CI 治理门禁经验\"段,明确\"绝不直接调高门禁阈值,要放宽改 adapter/audit severity 映射\"治理纪律。\n\n锁住本会话治理成果——6 类 audit 盲区填补 + 4 类真业务 P1/bug 收口,新 PR 引入新 HIGH 时立即被拦下。\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/39b8a4e31ee1b00ff5da03fd301042d13d8d1203","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:43:55-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml","CLAUDE.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5218150,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:22:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
25
|
0
|
1777222090
|
0
|
1777221965
|
1777222094
|
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
|
|
23432
|
Harden recording release E2E assertion
|
62
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
3d3d1a4d8c4ab00b1cefbc239838007a04296172
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"73bd623dfedff79a02fac961d1c16f106137e2df","after":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/73bd623dfedff79a02fac961d1c16f106137e2df...3d3d1a4d8c4ab00b1cefbc239838007a04296172","commits":[{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":62,"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":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1460,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-07-22T01:13: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
|
8
|
1784685492
|
1784685545
|
0
|
1784685491
|
1784685545
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
18265
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
ci.yml
|
18185
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
14
|
1777347377
|
1777347411
|
0
|
1777347376
|
1777347601
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
18266
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
e2e-tests.yml
|
18186
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1777347411
|
1777347552
|
0
|
1777347377
|
1777347606
|
|
|
0
|
Edit
Delete
|
|
18267
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
test-pipeline.yml
|
18187
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1777347559
|
1777347598
|
0
|
1777347378
|
1777347682
|
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
|
|
18268
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
test-report.yml
|
18188
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-27T20:35:57-07:00","updated_at":"2026-04-27T20:35:57-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18266,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18266","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18266","display_title":"Add Page AI Assist feature flags and governance audits","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18186,"head_sha":"3fa41aea52e84435c16a79dd19c6775f93236a33","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T11:36:51+08:00","completed_at":"2026-04-28T11:39:12+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777347607
|
1777347611
|
0
|
1777347558
|
1777347633
|
|
|
0
|
Edit
Delete
|
|
18269
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
deploy.yml
|
18189
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-27T20:35:57-07:00","updated_at":"2026-04-27T20:35:57-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18267,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18267","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18267","display_title":"Add Page AI Assist feature flags and governance audits","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18187,"head_sha":"3fa41aea52e84435c16a79dd19c6775f93236a33","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T11:39:19+08:00","completed_at":"2026-04-28T11:39:58+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
26
|
1777347612
|
1777347673
|
0
|
1777347599
|
1777347674
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18270
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
test-report.yml
|
18190
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"e2e-tests.yml","name":"E2E Tests","path":".github/workflows/e2e-tests.yml","state":"active","created_at":"2026-04-27T20:35:57-07:00","updated_at":"2026-04-27T20:35:57-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/e2e-tests.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/e2e-tests.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18266,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18266","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18266","display_title":"Add Page AI Assist feature flags and governance audits","path":"e2e-tests.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18186,"head_sha":"3fa41aea52e84435c16a79dd19c6775f93236a33","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T11:36:51+08:00","completed_at":"2026-04-28T11:39:12+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
2
|
14
|
1777347626
|
1777347629
|
0
|
1777347606
|
1777347668
|
|
|
0
|
Edit
Delete
|
|
18271
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
health-check.yml
|
18191
|
-2
|
331
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1777347676
|
1777347676
|
0
|
1777347650
|
1777347676
|
|
|
0
|
Edit
Delete
|
|
18272
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
deploy.yml
|
18192
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-27T20:35:57-07:00","updated_at":"2026-04-27T20:35:57-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18267,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18267","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18267","display_title":"Add Page AI Assist feature flags and governance audits","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18187,"head_sha":"3fa41aea52e84435c16a79dd19c6775f93236a33","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T11:39:19+08:00","completed_at":"2026-04-28T11:39:58+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
3
|
17
|
1777347678
|
1777347683
|
0
|
1777347675
|
1777347685
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18273
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
deploy.yml
|
18193
|
5
|
0
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
workflow_run
|
{"action":"completed","workflo {"action":"completed","workflow":{"id":"test-pipeline.yml","name":"Test Pipeline","path":".github/workflows/test-pipeline.yml","state":"active","created_at":"2026-04-27T20:35:57-07:00","updated_at":"2026-04-27T20:35:57-07:00","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/src/branch/main/.github/workflows/test-pipeline.yml","badge_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/workflows/test-pipeline.yml/badge.svg?branch=main","deleted_at":"0001-01-01T00:00:00Z"},"workflow_run":{"id":18267,"url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/actions/runs/18267","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/actions/runs/18267","display_title":"Add Page AI Assist feature flags and governance audits","path":"test-pipeline.yml@refs/heads/main","event":"push","run_attempt":0,"run_number":18187,"head_sha":"3fa41aea52e84435c16a79dd19c6775f93236a33","head_branch":"main","status":"completed","actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"trigger_actor":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"conclusion":"failure","started_at":"2026-04-28T11:39:19+08:00","completed_at":"2026-04-28T11:39:58+08:00"},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230163,"language":"HTML","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T11:36:20+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
workflow_run
|
1
|
40
|
1777347686
|
1777347707
|
0
|
1777347685
|
1777347707
|
group: deploy-${{ github.ref }}
cancel-in-progress group: deploy-${{ github.ref }}
cancel-in-progress: "true"
...
|
deploy-refs/heads/main
|
1
|
Edit
Delete
|
|
18274
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
health-check.yml
|
18194
|
-2
|
331
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1777347950
|
1777347950
|
0
|
1777347950
|
1777347950
|
|
|
0
|
Edit
Delete
|
|
18275
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
health-check.yml
|
18195
|
-2
|
331
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1777348250
|
1777348251
|
0
|
1777348250
|
1777348251
|
|
|
0
|
Edit
Delete
|
|
18276
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
health-check.yml
|
18196
|
-2
|
331
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1777348550
|
1777348550
|
0
|
1777348550
|
1777348550
|
|
|
0
|
Edit
Delete
|
|
18277
|
Add Page AI Assist feature flags and governance au Add Page AI Assist feature flags and governance audits...
|
6
|
5
|
health-check.yml
|
18197
|
-2
|
331
|
refs/heads/main
|
3fa41aea52e84435c16a79dd19c6775f93236a33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"62f424f94b745efdce16bde3aa2c73e3839a9264","after":"3fa41aea52e84435c16a79dd19c6775f93236a33","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/62f424f94b745efdce16bde3aa2c73e3839a9264...3fa41aea52e84435c16a79dd19c6775f93236a33","commits":[{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]}],"total_commits":0,"head_commit":{"id":"3fa41aea52e84435c16a79dd19c6775f93236a33","message":"Add Page AI Assist feature flags and governance audits\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3fa41aea52e84435c16a79dd19c6775f93236a33","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T20:35:57-07:00","added":["backend/src/modules/ai-assist/context-providers/ai-agents.ts","backend/src/modules/ai-assist/context-providers/campaign.ts","backend/src/modules/ai-assist/context-providers/collaboration.ts","backend/src/modules/ai-assist/context-providers/content-item.ts","backend/src/modules/ai-assist/context-providers/contract.ts","backend/src/modules/ai-assist/context-providers/finance-aggregate.ts","backend/src/modules/ai-assist/context-providers/hr-aggregate.ts","backend/src/modules/ai-assist/context-providers/lead.ts","backend/src/modules/ai-assist/context-providers/marketing-workflow.ts","backend/src/modules/ai-assist/context-providers/order.ts","backend/src/modules/ai-assist/context-providers/quote.ts","backend/src/modules/ai-assist/context-providers/social-hot-topic.ts","backend/src/modules/ai-assist/context-providers/social-post.ts","backend/src/modules/ai-assist/context-providers/stores.ts","backend/src/modules/ai-assist/context-providers/supply-chain.ts","backend/src/modules/ai-assist/context-providers/system-infra-aggregate.ts","backend/src/modules/ai-assist/context-providers/workbench.ts","scripts/audit-context-provider-redact.ts"],"removed":[],"modified":[".env.example",".env.production.example",".github/workflows/ci.yml","AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/.env.example","backend/src/config/env.ts","backend/src/modules/ai-agents/ai-agent.controller.test.ts","backend/src/modules/ai-agents/ai-agent.controller.ts","backend/src/modules/ai-assist/ai-assist.service.ts","backend/src/modules/ai-assist/context-providers/generic.ts","backend/src/modules/ai-assist/context-providers/opportunity.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/context-providers/registry.ts","backend/src/modules/ai-assist/context-providers/ticket.ts","backend/src/modules/ai-assist/context-providers/types.ts","backend/src/modules/ai-review-queue/ai-review-queue.controller.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/shared/constants/permissions.ts","backend/tests/api/ai-assist.test.ts","frontend/.env.example","frontend/src/components/business/AICopilotSidebar.vue","frontend/src/composables/usePageAIAssist.ts","frontend/src/env.d.ts","package.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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","scripts/audit-ai-assist-context-providers.ts","scripts/harness/audit-registry.ts"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5229727,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T09:36:09+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"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
|
1777348850
|
1777348851
|
0
|
1777348850
|
1777348851
|
|
|
0
|
Edit
Delete
|