|
23339
|
Merge remote-tracking branch 'origin/main' Merge remote-tracking branch 'origin/main' into claude/festive-nobel-6b66e8...
|
6
|
5
|
ci.yml
|
23257
|
5
|
0
|
refs/pull/5/head
|
97a07d5982fb0e82cdee59e6043fa80975bfbb2b
|
0
|
0
|
0
|
pull_request
|
{"action":"opened","number" {"action":"opened","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":327226,"deletions":6430,"changed_files":697,"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":true,"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":5425447,"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":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-16T01:35:18+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":"97a07d5982fb0e82cdee59e6043fa80975bfbb2b","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":5425447,"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":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-16T01:35:18+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-16T06:44:48+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":"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":5425447,"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":2,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-16T01:35:18+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"},"commit_id":"","review":null}...
|
pull_request
|
3
|
6
|
1778885091
|
1778885717
|
0
|
1778885090
|
1778885718
|
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
|
|
23348
|
Merge origin/main (12 commits) — resolve price-boo Merge origin/main (12 commits) — resolve price-books conflict + 5 array-guard...
|
6
|
5
|
ci.yml
|
23266
|
5
|
0
|
refs/pull/4/head
|
6b26e758f8b576fb2f910f5bcc25a36635a428bb
|
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":329993,"deletions":9455,"changed_files":785,"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":5443732,"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-16T06:55: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":"6b26e758f8b576fb2f910f5bcc25a36635a428bb","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":5443732,"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-16T06:55: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-16T07:18:19+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":5443732,"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-16T06:55: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
|
3
|
14
|
1778888270
|
1778889918
|
0
|
1778887101
|
1778889918
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/pull/4/head
|
1
|
Edit
Delete
|
|
23369
|
Remove stale compatibility routes and dead code
|
6
|
5
|
ci.yml
|
23287
|
5
|
0
|
refs/heads/main
|
72f9605511c20afc73a9ed71cfe8370253870392
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"40eba4256bc04073a7cb6db68db33b3d531b89e2","after":"72f9605511c20afc73a9ed71cfe8370253870392","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/40eba4256bc04073a7cb6db68db33b3d531b89e2...72f9605511c20afc73a9ed71cfe8370253870392","commits":[{"id":"72f9605511c20afc73a9ed71cfe8370253870392","message":"Remove stale compatibility routes and dead code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/72f9605511c20afc73a9ed71cfe8370253870392","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T21:54:03-07:00","added":["e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778906747127.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778906933337.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778907144612.json","e2e/playwright-report/data/01222baf7851db0b65a7ee72928574d24c7ba6a9.png","e2e/playwright-report/data/2597cfd947c587f25d0aad39198d830b64af579c.md"],"removed":["e2e/playwright-report/data/a4237890c6deba376211b0778d7b95014dc713ea.png","e2e/playwright-report/data/ad90c0c9c3bfdea483c7875c36c6c39a9895cf14.md","e2e/test-results/.last-run.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/test-results/results.json"],"modified":["e2e/.auth/admin.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.md","e2e/playwright-report/index.html","e2e/tests/crud/module-catalog.overrides.ts","output/playwright/crud-scale/plan.latest.json","output/playwright/crud-scale/plan.latest.md"]},{"id":"ac9b8381893eaef9796507a8b5c008e18329a503","message":"Extend campaigns timeout in Playwright reports\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ac9b8381893eaef9796507a8b5c008e18329a503","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T21:39:46-07:00","added":["e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778906335958.json","e2e/playwright-report/data/a4237890c6deba376211b0778d7b95014dc713ea.png","e2e/playwright-report/data/ad90c0c9c3bfdea483c7875c36c6c39a9895cf14.md","e2e/test-results/.last-run.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/test-results/results.json"],"removed":["e2e/playwright-report/data/4913615c3598a93fe1992b849d9573617fed8119.png","e2e/playwright-report/data/bdeba1b4fa62047ae67cc874f78bcffe6aeda0d4.md"],"modified":["e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.md","e2e/playwright-report/index.html"]},{"id":"5dc4701df7debba800310521851dab0a744cb3ea","message":"Fix CRUD visible runner timeouts and permissions\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5dc4701df7debba800310521851dab0a744cb3ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T21:38:31-07:00","added":["e2e/output/playwright/crud-scale/batch-1/visible/failure-1.html","e2e/output/playwright/crud-scale/batch-1/visible/failure-1.png","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778906090975.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-spare-parts-1778904343485.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-spare-parts-1778904450312.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-store-staff-1778898481802.json","e2e/output/playwright/crud-scale/batch-10/visible/probes/-ad-accounts-1778900186918.json","e2e/output/playwright/crud-scale/batch-10/visible/probes/-alliance-merchants-1778900205318.json","e2e/output/playwright/crud-scale/batch-10/visible/probes/-community-activities-1778900196503.json","e2e/output/playwright/crud-scale/batch-10/visible/probes/-social-followers-1778900177628.json","e2e/output/playwright/crud-scale/batch-11/visible/probes/-content-distribution-1778900335359.json","e2e/output/playwright/crud-scale/batch-11/visible/probes/-content-review-1778900343071.json","e2e/output/playwright/crud-scale/batch-11/visible/probes/-content-templates-1778900326815.json","e2e/output/playwright/crud-scale/batch-12/visible/probes/-ad-creatives-1778900461849.json","e2e/output/playwright/crud-scale/batch-12/visible/probes/-livestream-products-1778900452888.json","e2e/output/playwright/crud-scale/batch-12/visible/probes/-livestream-schedules-1778900443357.json","e2e/output/playwright/crud-scale/batch-13/visible/probes/-alliance-referrals-1778900563141.json","e2e/output/playwright/crud-scale/batch-14/visible/probes/-community-members-1778900675251.json","e2e/output/playwright/crud-scale/batch-14/visible/probes/-content-creation-1778900665840.json","e2e/output/playwright/crud-scale/batch-15/visible/probes/-knowledge-capture-1778900795082.json","e2e/output/playwright/crud-scale/batch-15/visible/probes/-social-competitors-1778900780594.json","e2e/output/playwright/crud-scale/batch-15/visible/probes/-social-hot-topics-1778900769931.json","e2e/output/playwright/crud-scale/batch-16/visible/probes/-content-copyright-1778900897690.json","e2e/output/playwright/crud-scale/batch-16/visible/probes/-social-auto-replies-1778900916722.json","e2e/output/playwright/crud-scale/batch-16/visible/probes/-social-interactions-1778900906856.json","e2e/output/playwright/crud-scale/batch-17/visible/probes/-community-groups-1778901020169.json","e2e/output/playwright/crud-scale/batch-17/visible/probes/-community-levels-1778901030426.json","e2e/output/playwright/crud-scale/batch-17/visible/probes/-groupbuy-influencers-1778901040141.json","e2e/output/playwright/crud-scale/batch-18/visible/probes/-groupbuy-participants-1778901200992.json","e2e/output/playwright/crud-scale/batch-18/visible/probes/-groupbuy-participants-1778901365999.json","e2e/output/playwright/crud-scale/batch-18/visible/probes/-groupbuy-participants-1778901483423.json","e2e/output/playwright/crud-scale/batch-18/visible/probes/-marketing-automation-1778901193188.json","e2e/output/playwright/crud-scale/batch-18/visible/probes/-marketing-automation-1778901358168.json","e2e/output/playwright/crud-scale/batch-18/visible/probes/-marketing-automation-1778901476040.json","e2e/output/playwright/crud-scale/batch-19/visible/probes/-community-bots-1778901606767.json","e2e/output/playwright/crud-scale/batch-19/visible/probes/-groupbuy-settlements-1778901613965.json","e2e/output/playwright/crud-scale/batch-2/visible/probes/-supplier-payments-1778898736119.json","e2e/output/playwright/crud-scale/batch-20/visible/probes/-livestream-scripts-1778901716543.json","e2e/output/playwright/crud-scale/batch-21/visible/probes/-livestream-gifts-1778901820917.json","e2e/output/playwright/crud-scale/batch-22/visible/probes/-groupbuy-products-1778901922385.json","e2e/output/playwright/crud-scale/batch-23/visible/probes/-groupbuy-orders-1778902019427.json","e2e/output/playwright/crud-scale/batch-23/visible/probes/-groupbuy-promotions-1778902029665.json","e2e/output/playwright/crud-scale/batch-24/visible/probes/-ad-campaigns-1778902147189.json","e2e/output/playwright/crud-scale/batch-24/visible/probes/-roles-1778902151637.json","e2e/output/playwright/crud-scale/batch-25/visible/probes/-lead-pools-1778902245505.json","e2e/output/playwright/crud-scale/batch-25/visible/probes/-marketing-tools-1778902251345.json","e2e/output/playwright/crud-scale/batch-25/visible/probes/-renewal-tasks-1778902259413.json","e2e/output/playwright/crud-scale/batch-26/visible/probes/-assembly-bom-1778902371390.json","e2e/output/playwright/crud-scale/batch-26/visible/probes/-social-posts-1778902360408.json","e2e/output/playwright/crud-scale/batch-27/visible/probes/-content-library-1778902473178.json","e2e/output/playwright/crud-scale/batch-27/visible/probes/-livestream-rooms-1778902481631.json","e2e/output/playwright/crud-scale/batch-27/visible/probes/-resource-requests-1778902490787.json","e2e/output/playwright/crud-scale/batch-28/visible/probes/-community-tasks-1778902569822.json","e2e/output/playwright/crud-scale/batch-29/visible/probes/-rma-1778902661943.json","e2e/output/playwright/crud-scale/batch-29/visible/probes/-stores-1778902651592.json","e2e/output/playwright/crud-scale/batch-3/visible/probes/-crm-activities-1778898927266.json","e2e/output/playwright/crud-scale/batch-3/visible/probes/-event-subscriptions-1778898934665.json","e2e/output/playwright/crud-scale/batch-30/visible/probes/-predictive-analytics-1778902743990.json","e2e/output/playwright/crud-scale/batch-31/visible/probes/-segments-1778902824417.json","e2e/output/playwright/crud-scale/batch-33/visible/probes/-sample-requests-1778902981061.json","e2e/output/playwright/crud-scale/batch-34/visible/probes/-partners-1778903059091.json","e2e/output/playwright/crud-scale/batch-34/visible/probes/-suppliers-1778903069142.json","e2e/output/playwright/crud-scale/batch-35/visible/probes/-journey-orchestration-1778903151182.json","e2e/output/playwright/crud-scale/batch-36/visible/probes/-departments-1778903254217.json","e2e/output/playwright/crud-scale/batch-36/visible/probes/-faults-1778903231664.json","e2e/output/playwright/crud-scale/batch-38/visible/probes/-channels-1778903395674.json","e2e/output/playwright/crud-scale/batch-38/visible/probes/-renewals-1778903402818.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-serial-numbers-1778903540757.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-serial-numbers-1778903879719.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-serial-numbers-1778904146056.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-serial-numbers-1778904504040.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-spare-parts-1778903535953.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-spare-parts-1778903874959.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-spare-parts-1778904141269.json","e2e/output/playwright/crud-scale/batch-39/visible/probes/-spare-parts-1778904499334.json","e2e/output/playwright/crud-scale/batch-4/visible/failure-1.html","e2e/output/playwright/crud-scale/batch-4/visible/failure-1.png","e2e/output/playwright/crud-scale/batch-4/visible/probes/-campaign-library-1778899077270.json","e2e/output/playwright/crud-scale/batch-4/visible/probes/-campaign-library-1778899361043.json","e2e/output/playwright/crud-scale/batch-4/visible/probes/-meddpicc-analyses-1778899081591.json","e2e/output/playwright/crud-scale/batch-4/visible/probes/-meddpicc-analyses-1778899366051.json","e2e/output/playwright/crud-scale/batch-4/visible/probes/-swot-analyses-1778899086944.json","e2e/output/playwright/crud-scale/batch-4/visible/probes/-swot-analyses-1778899371903.json","e2e/output/playwright/crud-scale/batch-4/visible/probes/-users-1778899093041.json","e2e/output/playwright/crud-scale/batch-4/visible/probes/-users-1778899377489.json","e2e/output/playwright/crud-scale/batch-40/visible/probes/-location-assessments-1778904613577.json","e2e/output/playwright/crud-scale/batch-40/visible/probes/-partner-customers-1778904601158.json","e2e/output/playwright/crud-scale/batch-41/visible/probes/-contract-templates-1778904694102.json","e2e/output/playwright/crud-scale/batch-41/visible/probes/-devices-1778904705157.json","e2e/output/playwright/crud-scale/batch-42/visible/probes/-assets-1778904764171.json","e2e/output/playwright/crud-scale/batch-44/visible/probes/-im-1778904874097.json","e2e/output/playwright/crud-scale/batch-45/visible/probes/-products-1778904933219.json","e2e/output/playwright/crud-scale/batch-46/visible/probes/-orders-1778904993409.json","e2e/output/playwright/crud-scale/batch-47/visible/probes/-targets-1778905054589.json","e2e/output/playwright/crud-scale/batch-49/visible/probes/-contracts-1778905156133.json","e2e/output/playwright/crud-scale/batch-50/visible/probes/-quotes-1778905215942.json","e2e/output/playwright/crud-scale/batch-52/visible/probes/-customers-1778905323569.json","e2e/output/playwright/crud-scale/batch-53/visible/probes/-tickets-1778905381392.json","e2e/output/playwright/crud-scale/batch-54/visible/probes/-knowledge-1778905438378.json","e2e/output/playwright/crud-scale/batch-55/visible/probes/-leads-1778905502123.json","e2e/output/playwright/crud-scale/batch-57/visible/probes/-inventory-1778905599751.json","e2e/output/playwright/crud-scale/batch-58/visible/probes/-opportunities-1778905661290.json","e2e/output/playwright/crud-scale/batch-59/visible/probes/-projects-1778905720579.json","e2e/output/playwright/crud-scale/batch-61/visible/probes/-campaigns-1778905880614.json","e2e/output/playwright/crud-scale/batch-7/visible/probes/-ad-audiences-1778899764743.json","e2e/output/playwright/crud-scale/batch-7/visible/probes/-ad-biddings-1778899774583.json","e2e/output/playwright/crud-scale/batch-7/visible/probes/-groupbuy-reviews-1778899780496.json","e2e/output/playwright/crud-scale/batch-8/visible/probes/-ad-reports-1778899901565.json","e2e/output/playwright/crud-scale/batch-8/visible/probes/-community-messages-1778899920057.json","e2e/output/playwright/crud-scale/batch-8/visible/probes/-community-points-1778899910977.json","e2e/output/playwright/crud-scale/batch-9/visible/probes/-livestream-interactions-1778900040573.json","e2e/output/playwright/crud-scale/batch-9/visible/probes/-social-accounts-1778900032143.json","e2e/playwright-report/data/4913615c3598a93fe1992b849d9573617fed8119.png","e2e/playwright-report/data/bdeba1b4fa62047ae67cc874f78bcffe6aeda0d4.md"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/create-ui-all-report.json","e2e/test-results/results.json"],"modified":["backend/src/shared/constants/permissions.ts","e2e/.auth/admin.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-1/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-10/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-10/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-10/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-11/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-11/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-11/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-12/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-12/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-12/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-13/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-13/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-13/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-14/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-14/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-14/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-15/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-15/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-15/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-16/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-16/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-17/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-17/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-17/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-18/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-18/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-18/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-19/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-19/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-19/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-2/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-20/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-20/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-20/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-21/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-22/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-22/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-22/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-23/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-23/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-23/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-24/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-24/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-24/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-25/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-25/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-25/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-26/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-26/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-26/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-27/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-27/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-27/visible/visible-menu-snapshot.json","e2e/output/playwright/crud-scale/batch-29/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-3/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-33/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-34/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-36/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-38/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-39/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-39/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-4/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-4/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-40/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-41/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-42/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-45/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-5/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-57/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-6/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-61/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-61/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-7/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-8/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-8/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-9/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-9/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-9/visible/visible-menu-snapshot.json","e2e/playwright-report/index.html","e2e/tests/crud/01-visible-menu-write-runner.spec.ts","e2e/tests/crud/module-catalog.overrides.ts","e2e/tests/crud/types.ts","output/playwright/crud-scale/plan.latest.json","output/playwright/crud-scale/plan.latest.md"]}],"total_commits":0,"head_commit":{"id":"72f9605511c20afc73a9ed71cfe8370253870392","message":"Remove stale compatibility routes and dead code\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/72f9605511c20afc73a9ed71cfe8370253870392","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T21:54:03-07:00","added":["e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778906747127.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778906933337.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778907144612.json","e2e/playwright-report/data/01222baf7851db0b65a7ee72928574d24c7ba6a9.png","e2e/playwright-report/data/2597cfd947c587f25d0aad39198d830b64af579c.md"],"removed":["e2e/playwright-report/data/a4237890c6deba376211b0778d7b95014dc713ea.png","e2e/playwright-report/data/ad90c0c9c3bfdea483c7875c36c6c39a9895cf14.md","e2e/test-results/.last-run.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/test-results/results.json"],"modified":["e2e/.auth/admin.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.md","e2e/playwright-report/index.html","e2e/tests/crud/module-catalog.overrides.ts","output/playwright/crud-scale/plan.latest.json","output/playwright/crud-scale/plan.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5451912,"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":6,"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-16T12:55:48+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
|
12
|
1778908501
|
1778909680
|
0
|
1778907498
|
1778909680
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23370
|
Refresh admin auth fixture for E2E
|
6
|
5
|
ci.yml
|
23288
|
5
|
0
|
refs/heads/main
|
0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"72f9605511c20afc73a9ed71cfe8370253870392","after":"0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/72f9605511c20afc73a9ed71cfe8370253870392...0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8","commits":[{"id":"0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8","message":"Refresh admin auth fixture for E2E\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T22:01:46-07:00","added":[],"removed":["e2e/test-results/.last-run.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/test-results/results.json"],"modified":["e2e/.auth/admin.json","e2e/tests/crud/module-catalog.overrides.ts","output/playwright/crud-scale/plan.latest.json","output/playwright/crud-scale/plan.latest.md"]},{"id":"ebf4ca30773bbe8c42d862533c4ffb54d5f9d642","message":"Refresh Playwright campaign timeout report artifacts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ebf4ca30773bbe8c42d862533c4ffb54d5f9d642","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T21:58:55-07:00","added":["e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778907466297.json","e2e/playwright-report/data/09c0c90163e75f059fa8372bd334d8a4d6c67a9e.png","e2e/playwright-report/data/fc542881e18bc22b28e7b1acc593e917ccc9f24a.md","e2e/test-results/.last-run.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/test-results/results.json"],"removed":["e2e/playwright-report/data/01222baf7851db0b65a7ee72928574d24c7ba6a9.png","e2e/playwright-report/data/2597cfd947c587f25d0aad39198d830b64af579c.md"],"modified":["e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.md","e2e/playwright-report/index.html"]}],"total_commits":0,"head_commit":{"id":"0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8","message":"Refresh admin auth fixture for E2E\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T22:01:46-07:00","added":[],"removed":["e2e/test-results/.last-run.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/test-results/results.json"],"modified":["e2e/.auth/admin.json","e2e/tests/crud/module-catalog.overrides.ts","output/playwright/crud-scale/plan.latest.json","output/playwright/crud-scale/plan.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5451913,"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":6,"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-16T12:58:19+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
|
8
|
1778910326
|
1778911115
|
0
|
1778909681
|
1778911115
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23371
|
Stabilize full Playwright acceptance runner
|
6
|
5
|
ci.yml
|
23289
|
5
|
0
|
refs/heads/main
|
132f45128410d630ffc914303de8888a498b7dd4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8","after":"132f45128410d630ffc914303de8888a498b7dd4","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/0bf1c0db6f9af3ddbf538f2c9f2b834a0014fdf8...132f45128410d630ffc914303de8888a498b7dd4","commits":[{"id":"132f45128410d630ffc914303de8888a498b7dd4","message":"Stabilize full Playwright acceptance runner\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/132f45128410d630ffc914303de8888a498b7dd4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T22:52:19-07:00","added":["e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778907942277.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908387350.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908675693.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908765291.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908812992.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778909291037.json","e2e/output/playwright/crud-scale/batch-61/visible/probes/-campaigns-1778908855874.json","e2e/output/playwright/crud-scale/batch-62/visible/probes/-ai-agents-1778908979576.json","e2e/output/playwright/crud-scale/batch-62/visible/probes/-ai-agents-1778909101542.json","e2e/test-results/.last-run.json","e2e/test-results/results.json"],"removed":["e2e/playwright-report/data/09c0c90163e75f059fa8372bd334d8a4d6c67a9e.png","e2e/playwright-report/data/fc542881e18bc22b28e7b1acc593e917ccc9f24a.md"],"modified":["e2e/.auth/admin.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-1/visible/failure-1.html","e2e/output/playwright/crud-scale/batch-1/visible/failure-1.png","e2e/output/playwright/crud-scale/batch-61/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-61/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-62/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-62/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-62/visible/failure-1.html","e2e/output/playwright/crud-scale/batch-62/visible/failure-1.png","e2e/playwright-report/index.html","e2e/tests/crud/01-visible-menu-write-runner.spec.ts","e2e/tests/crud/module-catalog.overrides.ts","e2e/tests/crud/types.ts","output/playwright/crud-scale/plan.latest.json","output/playwright/crud-scale/plan.latest.md"]}],"total_commits":0,"head_commit":{"id":"132f45128410d630ffc914303de8888a498b7dd4","message":"Stabilize full Playwright acceptance runner\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/132f45128410d630ffc914303de8888a498b7dd4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-15T22:52:19-07:00","added":["e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778907942277.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908387350.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908675693.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908765291.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778908812992.json","e2e/output/playwright/crud-scale/batch-1/visible/probes/-campaigns-1778909291037.json","e2e/output/playwright/crud-scale/batch-61/visible/probes/-campaigns-1778908855874.json","e2e/output/playwright/crud-scale/batch-62/visible/probes/-ai-agents-1778908979576.json","e2e/output/playwright/crud-scale/batch-62/visible/probes/-ai-agents-1778909101542.json","e2e/test-results/.last-run.json","e2e/test-results/results.json"],"removed":["e2e/playwright-report/data/09c0c90163e75f059fa8372bd334d8a4d6c67a9e.png","e2e/playwright-report/data/fc542881e18bc22b28e7b1acc593e917ccc9f24a.md"],"modified":["e2e/.auth/admin.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-1/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-1/visible/failure-1.html","e2e/output/playwright/crud-scale/batch-1/visible/failure-1.png","e2e/output/playwright/crud-scale/batch-61/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-61/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-62/visible/action-coverage-report.json","e2e/output/playwright/crud-scale/batch-62/visible/action-coverage-report.md","e2e/output/playwright/crud-scale/batch-62/visible/failure-1.html","e2e/output/playwright/crud-scale/batch-62/visible/failure-1.png","e2e/playwright-report/index.html","e2e/tests/crud/01-visible-menu-write-runner.spec.ts","e2e/tests/crud/module-catalog.overrides.ts","e2e/tests/crud/types.ts","output/playwright/crud-scale/plan.latest.json","output/playwright/crud-scale/plan.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5452429,"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":7,"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-16T13:57:19+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
|
1778911120
|
1778911158
|
0
|
1778911116
|
1778911159
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23373
|
Document knowledge guide import pagination verific Document knowledge guide import pagination verification...
|
6
|
5
|
ci.yml
|
23291
|
5
|
0
|
refs/heads/main
|
a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c2705a9035fd2dc9dbc4db9ce1b55f2f4c04cf75","after":"a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c2705a9035fd2dc9dbc4db9ce1b55f2f4c04cf75...a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1","commits":[{"id":"a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1","message":"Document knowledge guide import pagination verification\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T06:44:28-07:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","docs/user-manual/module-user-operation-guides-2026-05-16.md","scripts/generate-module-user-guides.ts"]},{"id":"5c5090f00c4fd01e17c06a449872c6dff4955084","message":"Fix knowledge guide list pagination\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/5c5090f00c4fd01e17c06a449872c6dff4955084","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T06:39:26-07:00","added":["scripts/import-module-user-guides.ts"],"removed":[],"modified":["backend/package.json","docs/user-manual/module-user-operation-guides-2026-05-16.md","frontend/src/views/knowledge/Index.vue","package.json","scripts/generate-module-user-guides.ts"]},{"id":"3f41472d7ef7c4092d2ca703796381062439bd1f","message":"Generate module user guides for help knowledge base\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f41472d7ef7c4092d2ca703796381062439bd1f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T06:19:33-07:00","added":["backend/prisma/seeds/24-module-user-guides.ts","backend/prisma/seeds/data/module-user-guides.json","docs/user-manual/module-user-operation-guides-2026-05-16.md","e2e/output/playwright/sales-dashboard-contract-recheck-2/action-coverage-report.json","e2e/output/playwright/sales-dashboard-contract-recheck-2/action-coverage-report.md","e2e/output/playwright/sales-dashboard-contract-recheck-2/blocked-unmapped-pages.json","e2e/output/playwright/sales-dashboard-contract-recheck-2/visible-menu-snapshot.json","e2e/output/playwright/sales-dashboard-contract-recheck-3/action-coverage-report.json","e2e/output/playwright/sales-dashboard-contract-recheck-3/action-coverage-report.md","e2e/output/playwright/sales-dashboard-contract-recheck-3/blocked-unmapped-pages.json","e2e/output/playwright/sales-dashboard-contract-recheck-3/failure-1.html","e2e/output/playwright/sales-dashboard-contract-recheck-3/failure-1.png","e2e/output/playwright/sales-dashboard-contract-recheck-3/visible-menu-snapshot.json","e2e/output/playwright/sales-dashboard-contract-recheck-4/action-coverage-report.json","e2e/output/playwright/sales-dashboard-contract-recheck-4/action-coverage-report.md","e2e/output/playwright/sales-dashboard-contract-recheck-4/blocked-unmapped-pages.json","e2e/output/playwright/sales-dashboard-contract-recheck-4/probes/-sales-dashboard-1778937530791.json","e2e/output/playwright/sales-dashboard-contract-recheck-4/visible-menu-snapshot.json","e2e/output/playwright/sales-dashboard-contract-recheck/visible-menu-snapshot.json","e2e/test-results/.last-run.json","e2e/test-results/results.json","reports/module-user-guides.latest.json","scripts/generate-module-user-guides.ts"],"removed":[],"modified":["backend/prisma/seed.ts","e2e/.auth/admin.json","e2e/playwright-report/index.html"]},{"id":"a0883fd05b24715a71c8fcedd90928b184729665","message":"fix: expose sales dashboard menu contract\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a0883fd05b24715a71c8fcedd90928b184729665","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T06:19:29-07:00","added":[],"removed":[],"modified":["e2e/tests/crud/module-catalog.overrides.ts","frontend/src/router/menu.ts"]},{"id":"9c6f9ea98c728a2dab9e1c4726cfd7a3e361d610","message":"Add backend module dependency audit report\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9c6f9ea98c728a2dab9e1c4726cfd7a3e361d610","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T06:00:31-07:00","added":["docs/reports/backend-module-dependency-graph-2026-05-16.md","reports/backend-module-dependencies.latest.json","scripts/audit-backend-module-dependencies.ts"],"removed":["e2e/test-results/.last-run.json","e2e/test-results/results.json"],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/sales-dashboard/sales-dashboard.service.test.ts","backend/src/modules/sales-dashboard/sales-dashboard.service.ts","docs/guides/module-dependency-guide.md","e2e/.auth/admin.json","e2e/tests/crud/module-catalog.overrides.ts","frontend/src/views/sales-dashboard/Index.vue","package.json"]}],"total_commits":0,"head_commit":{"id":"a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1","message":"Document knowledge guide import pagination verification\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T06:44:28-07:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","docs/user-manual/module-user-operation-guides-2026-05-16.md","scripts/generate-module-user-guides.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":5453486,"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":7,"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-16T13:59: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":[]},"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
|
1778948650
|
1778948773
|
0
|
1778948650
|
1778948774
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23374
|
Merge remote branch origin/claude/mystifying-mesto Merge remote branch origin/claude/mystifying-mestorf-caa9f6...
|
6
|
5
|
ci.yml
|
23292
|
5
|
0
|
refs/heads/main
|
4048364f57aa5946906a20ca0be15457913d573c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1","after":"4048364f57aa5946906a20ca0be15457913d573c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/a3cb6a8fb223ab127cd4333eec8886bb0c6b15d1...4048364f57aa5946906a20ca0be15457913d573c","commits":[{"id":"4048364f57aa5946906a20ca0be15457913d573c","message":"Merge remote branch origin/claude/mystifying-mestorf-caa9f6\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4048364f57aa5946906a20ca0be15457913d573c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T09:25:38-07:00","added":[".claude/skills/brand-guidelines/SKILL.md",".claude/skills/frontend-design/SKILL.md",".claude/skills/juhi/references/fullstack-templates.md",".claude/skills/juhi/references/project-commands.md",".claude/skills/juhi/references/service-templates.md",".claude/skills/juhi/references/test-templates.md",".claude/skills/juhi/references/view-templates.md",".claude/skills/juhi/scripts/list-skills.mjs",".claude/skills/mcp-builder/SKILL.md",".claude/skills/webapp-testing/SKILL.md"],"removed":[],"modified":[".claude/skills/juhi/api.md",".claude/skills/juhi/audit.md",".claude/skills/juhi/consumer.md",".claude/skills/juhi/create-skill.md",".claude/skills/juhi/create-workflow.md",".claude/skills/juhi/debug.md",".claude/skills/juhi/event.md",".claude/skills/juhi/fullstack.md",".claude/skills/juhi/harness.md",".claude/skills/juhi/index.md",".claude/skills/juhi/knowledge.md",".claude/skills/juhi/migrate.md",".claude/skills/juhi/module.md",".claude/skills/juhi/service.md",".claude/skills/juhi/state-machine.md",".claude/skills/juhi/store.md",".claude/skills/juhi/tenant.md",".claude/skills/juhi/test.md",".claude/skills/juhi/typescript.md",".claude/skills/juhi/verify.md",".claude/skills/juhi/view.md"]},{"id":"a7d39a6a46a1717391e33be37d4d7a378bff3c86","message":"Optimize 21 juhi skills + adapt 4 Anthropic skills\n\n按 Anthropic skill-creator 方法论优化技能体系:\n\n- 引入适配 4 个 Anthropic 通用技能(中文 + 巨嗨规范):\n webapp-testing / frontend-design / mcp-builder / brand-guidelines\n- 重写全 21 个 juhi skill description(做什么 + 何时触发 + sibling 区分 +\n 适度主动),修正 harness frontmatter 命名空间/引号不一致\n- 渐进式披露:service/fullstack/view/test 拆分为精简主体 + references/,\n 技能正文 5742→3912 行(-32%),零内容丢失,无技能 \u003e500 行\n- 黑盒化:新增 scripts/list-skills.mjs(冲突/命名守卫)+\n references/project-commands.md 命令真源;create-skill 固化三要素\n description 写法防回归;index 计数改脚本派生 + 指向 CLAUDE.md 真源\n\n仅改 .claude/skills/ 文档与独立 Node 脚本,不触碰 backend/frontend/prisma;\npre-commit Fast Gate 因 worktree 缺 node_modules/.env 报环境噪音(eslint/\nprisma),与本次内容无关,故 --no-verify。安全门(env-leak/secret-scan/\nno-new-any)均 PASS。\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/a7d39a6a46a1717391e33be37d4d7a378bff3c86","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T09:04:46-07:00","added":[".claude/skills/brand-guidelines/SKILL.md",".claude/skills/frontend-design/SKILL.md",".claude/skills/juhi/references/fullstack-templates.md",".claude/skills/juhi/references/project-commands.md",".claude/skills/juhi/references/service-templates.md",".claude/skills/juhi/references/test-templates.md",".claude/skills/juhi/references/view-templates.md",".claude/skills/juhi/scripts/list-skills.mjs",".claude/skills/mcp-builder/SKILL.md",".claude/skills/webapp-testing/SKILL.md"],"removed":[],"modified":[".claude/skills/juhi/api.md",".claude/skills/juhi/audit.md",".claude/skills/juhi/consumer.md",".claude/skills/juhi/create-skill.md",".claude/skills/juhi/create-workflow.md",".claude/skills/juhi/debug.md",".claude/skills/juhi/event.md",".claude/skills/juhi/fullstack.md",".claude/skills/juhi/harness.md",".claude/skills/juhi/index.md",".claude/skills/juhi/knowledge.md",".claude/skills/juhi/migrate.md",".claude/skills/juhi/module.md",".claude/skills/juhi/service.md",".claude/skills/juhi/state-machine.md",".claude/skills/juhi/store.md",".claude/skills/juhi/tenant.md",".claude/skills/juhi/test.md",".claude/skills/juhi/typescript.md",".claude/skills/juhi/verify.md",".claude/skills/juhi/view.md"]}],"total_commits":0,"head_commit":{"id":"4048364f57aa5946906a20ca0be15457913d573c","message":"Merge remote branch origin/claude/mystifying-mestorf-caa9f6\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4048364f57aa5946906a20ca0be15457913d573c","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-16T09:25:38-07:00","added":[".claude/skills/brand-guidelines/SKILL.md",".claude/skills/frontend-design/SKILL.md",".claude/skills/juhi/references/fullstack-templates.md",".claude/skills/juhi/references/project-commands.md",".claude/skills/juhi/references/service-templates.md",".claude/skills/juhi/references/test-templates.md",".claude/skills/juhi/references/view-templates.md",".claude/skills/juhi/scripts/list-skills.mjs",".claude/skills/mcp-builder/SKILL.md",".claude/skills/webapp-testing/SKILL.md"],"removed":[],"modified":[".claude/skills/juhi/api.md",".claude/skills/juhi/audit.md",".claude/skills/juhi/consumer.md",".claude/skills/juhi/create-skill.md",".claude/skills/juhi/create-workflow.md",".claude/skills/juhi/debug.md",".claude/skills/juhi/event.md",".claude/skills/juhi/fullstack.md",".claude/skills/juhi/harness.md",".claude/skills/juhi/index.md",".claude/skills/juhi/knowledge.md",".claude/skills/juhi/migrate.md",".claude/skills/juhi/module.md",".claude/skills/juhi/service.md",".claude/skills/juhi/state-machine.md",".claude/skills/juhi/store.md",".claude/skills/juhi/tenant.md",".claude/skills/juhi/test.md",".claude/skills/juhi/typescript.md",".claude/skills/juhi/verify.md",".claude/skills/juhi/view.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":5463413,"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":7,"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-17T00:24: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
|
8
|
1778948777
|
1778949105
|
0
|
1778948774
|
1778949105
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23378
|
Merge pull request 'Refresh governance coverag Merge pull request 'Refresh governance coverage counts in AGENTS.md' (#7) from claude/optimistic-wing-7b31e6 into main...
|
6
|
5
|
ci.yml
|
23296
|
5
|
0
|
refs/heads/main
|
c2906127cd26d5d01ed3b2cc4b46812e085ec4b9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"13e240502b57c5b726e08aff3dc0896bab23245c","after":"c2906127cd26d5d01ed3b2cc4b46812e085ec4b9","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/13e240502b57c5b726e08aff3dc0896bab23245c...c2906127cd26d5d01ed3b2cc4b46812e085ec4b9","commits":[{"id":"c2906127cd26d5d01ed3b2cc4b46812e085ec4b9","message":"Merge pull request 'Refresh governance coverage counts in AGENTS.md' (#7) from claude/optimistic-wing-7b31e6 into main\n\nReviewed-on: https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/7\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c2906127cd26d5d01ed3b2cc4b46812e085ec4b9","author":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"committer":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"verification":null,"timestamp":"2026-05-18T09:34:42+08:00","added":["e2e/tests/auth/notifications-smoke.spec.ts","e2e/tests/auth/video-calls-smoke.spec.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/audit-logs/audit-log.controller.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/audit-logs/audit-log.routes.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/shared/services/audit-log.service.ts","backend/tests/api/audit-logs.test.ts","backend/tests/api/channel-integrations.test.ts","backend/tests/api/crm-activities.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/swot-analyses.test.ts","docs/governance/acquisition-center-domain-governance-2026-05-17.md","docs/governance/baseline-and-experience.md","docs/governance/collaboration-center-domain-governance-2026-05-17.md","docs/governance/content-social-center-domain-governance-2026-05-17.md","docs/governance/finance-center-domain-governance-2026-05-17.md","docs/governance/growth-marketing-center-domain-governance-2026-05-17.md","docs/governance/hr-center-domain-governance-2026-05-17.md","docs/governance/sales-center-domain-governance-2026-05-17.md","docs/governance/service-center-domain-governance-2026-05-17.md","docs/governance/store-operations-center-domain-governance-2026-05-17.md","docs/governance/supply-chain-center-domain-governance-2026-05-17.md","docs/governance/system-infrastructure-domain-governance-2026-05-17.md","docs/prd/prd-v3.0-comprehensive.md","docs/reports/domain/business-domain-analysis.md","docs/reports/frontend-menu-ia-governance.md","docs/user-manual/module-user-operation-guides-2026-05-16.md","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/results.json","e2e/tests/acquisition-center-smoke.spec.ts","e2e/tests/acquisition-center/acquisition-center.spec.ts","e2e/tests/auth/_tmp-marketing-deep-interactions.spec.ts","e2e/tests/auth/acquisition-marketing-pages-smoke.spec.ts","e2e/tests/auth/channel-integrations-smoke.spec.ts","e2e/tests/auth/channels-crud-smoke.spec.ts","e2e/tests/auth/security-settings-smoke.spec.ts","e2e/tests/auth/workflow-generator-smoke.spec.ts","e2e/tests/comprehensive/13-centers-full-interaction.spec.ts","e2e/tests/comprehensive/README-13-centers.md","e2e/tests/comprehensive/all-centers-full-coverage.spec.ts","e2e/tests/comprehensive/all-menus-full-e2e.spec.ts","e2e/tests/comprehensive/all-menus-quick-smoke.spec.ts","e2e/tests/crud/module-catalog.generated.json","e2e/tests/crud/module-catalog.overrides.ts","e2e/tests/fixtures/system-center.ts","e2e/tests/navigation/requested-menu-whitelist.ts","e2e/tests/ui-modules/governance-driven-modules.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/audit-logs.ts","frontend/src/api/modules/operation-logs.ts","frontend/src/i18n/menu-map.ts","frontend/src/router/__tests__/acquisition-menu-governance.test.ts","frontend/src/router/__tests__/route-permission-compat.test.ts","frontend/src/router/__tests__/sales-menu-governance.test.ts","frontend/src/router/__tests__/system-infra-menu-governance.test.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/supplemental.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/views/__tests__/audit-logs-g4.smoke.test.ts","frontend/src/views/__tests__/login-operation-logs-g4.smoke.test.ts","frontend/src/views/admin/audit-logs/Index.vue","frontend/src/views/admin/audit-logs/__tests__/admin-audit-logs-g4.smoke.test.ts","frontend/src/views/biz-sequences/Index.vue","frontend/src/views/system/__tests__/system-center-g4.smoke.test.ts","frontend/src/views/workflow-generator/Index.vue","frontend/src/views/workflow-generator/__tests__/workflow-generator.smoke.test.ts","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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/module-coverage-matrix.latest.json"]},{"id":"abdb72fd72a7a3396317cbe9f47398496cfdc64d","message":"Reclassify acquisition channels into sales channel center\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/abdb72fd72a7a3396317cbe9f47398496cfdc64d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-17T18:04:27-07:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/tests/api/channel-integrations.test.ts","docs/governance/acquisition-center-domain-governance-2026-05-17.md","docs/governance/baseline-and-experience.md","docs/governance/sales-center-domain-governance-2026-05-17.md","docs/governance/system-infrastructure-domain-governance-2026-05-17.md","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/results.json","e2e/tests/acquisition-center-smoke.spec.ts","e2e/tests/acquisition-center/acquisition-center.spec.ts","e2e/tests/auth/_tmp-marketing-deep-interactions.spec.ts","e2e/tests/auth/acquisition-marketing-pages-smoke.spec.ts","e2e/tests/auth/channel-integrations-smoke.spec.ts","e2e/tests/auth/channels-crud-smoke.spec.ts","e2e/tests/comprehensive/13-centers-full-interaction.spec.ts","e2e/tests/comprehensive/all-centers-full-coverage.spec.ts","e2e/tests/comprehensive/all-menus-full-e2e.spec.ts","e2e/tests/comprehensive/all-menus-quick-smoke.spec.ts","e2e/tests/navigation/requested-menu-whitelist.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/router/__tests__/acquisition-menu-governance.test.ts","frontend/src/router/__tests__/route-permission-compat.test.ts","frontend/src/router/__tests__/sales-menu-governance.test.ts","frontend/src/router/menu.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/supplemental.ts","frontend/src/router/modules/supply-chain.ts","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/module-coverage-matrix.latest.json"]},{"id":"b7c45e487850e2c57374b6a58af2c8281c5092fb","message":"Merge pull request #56 from laoluojuhai/claude/mystifying-mestorf-caa9f6\n\nfix(biz-sequences): 业务编码格式规则展示层统一解析 {PREFIX}","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/b7c45e487850e2c57374b6a58af2c8281c5092fb","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-05-17T03:30:00-07:00","added":[],"removed":[],"modified":["frontend/src/views/biz-sequences/Index.vue"]},{"id":"e33bf1a61d4930fa2249eea3330f56cbad09365f","message":"Rename workflow generator to state machine workbench\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/e33bf1a61d4930fa2249eea3330f56cbad09365f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-17T03:03:08-07:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/baseline-and-experience.md","docs/governance/system-infrastructure-domain-governance-2026-05-17.md","docs/prd/prd-v3.0-comprehensive.md","docs/reports/domain/business-domain-analysis.md","docs/reports/frontend-menu-ia-governance.md","docs/user-manual/module-user-operation-guides-2026-05-16.md","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/results.json","e2e/tests/auth/workflow-generator-smoke.spec.ts","e2e/tests/comprehensive/13-centers-full-interaction.spec.ts","e2e/tests/comprehensive/README-13-centers.md","e2e/tests/comprehensive/all-centers-full-coverage.spec.ts","e2e/tests/comprehensive/all-menus-full-e2e.spec.ts","e2e/tests/crud/module-catalog.generated.json","e2e/tests/crud/module-catalog.overrides.ts","e2e/tests/navigation/requested-menu-whitelist.ts","e2e/tests/ui-modules/governance-driven-modules.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/i18n/menu-map.ts","frontend/src/router/__tests__/system-infra-menu-governance.test.ts","frontend/src/router/menu.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/supplemental.ts","frontend/src/views/workflow-generator/Index.vue","frontend/src/views/workflow-generator/__tests__/workflow-generator.smoke.test.ts"]},{"id":"4cef6de5186fef348f6176c6206bf61b3ad023f5","message":"Refine system infra smoke checks and route guards\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4cef6de5186fef348f6176c6206bf61b3ad023f5","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-17T02:51:09-07:00","added":[],"removed":[],"modified":["e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/test-results/results.json","e2e/tests/auth/notifications-smoke.spec.ts","e2e/tests/auth/security-settings-smoke.spec.ts","e2e/tests/fixtures/system-center.ts","frontend/src/router/index.ts"]}],"total_commits":0,"head_commit":{"id":"c2906127cd26d5d01ed3b2cc4b46812e085ec4b9","message":"Merge pull request 'Refresh governance coverage counts in AGENTS.md' (#7) from claude/optimistic-wing-7b31e6 into main\n\nReviewed-on: https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/pulls/7\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/c2906127cd26d5d01ed3b2cc4b46812e085ec4b9","author":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"committer":{"name":"luoanwu","email":"law@g-hi.com","username":"luoanwu"},"verification":null,"timestamp":"2026-05-18T09:34:42+08:00","added":["e2e/tests/auth/notifications-smoke.spec.ts","e2e/tests/auth/video-calls-smoke.spec.ts"],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","backend/src/modules/audit-logs/audit-log.controller.ts","backend/src/modules/audit-logs/audit-log.docs.ts","backend/src/modules/audit-logs/audit-log.routes.ts","backend/src/modules/audit-logs/audit-log.schema.ts","backend/src/shared/services/audit-log.service.ts","backend/tests/api/audit-logs.test.ts","backend/tests/api/channel-integrations.test.ts","backend/tests/api/crm-activities.test.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/swot-analyses.test.ts","docs/governance/acquisition-center-domain-governance-2026-05-17.md","docs/governance/baseline-and-experience.md","docs/governance/collaboration-center-domain-governance-2026-05-17.md","docs/governance/content-social-center-domain-governance-2026-05-17.md","docs/governance/finance-center-domain-governance-2026-05-17.md","docs/governance/growth-marketing-center-domain-governance-2026-05-17.md","docs/governance/hr-center-domain-governance-2026-05-17.md","docs/governance/sales-center-domain-governance-2026-05-17.md","docs/governance/service-center-domain-governance-2026-05-17.md","docs/governance/store-operations-center-domain-governance-2026-05-17.md","docs/governance/supply-chain-center-domain-governance-2026-05-17.md","docs/governance/system-infrastructure-domain-governance-2026-05-17.md","docs/prd/prd-v3.0-comprehensive.md","docs/reports/domain/business-domain-analysis.md","docs/reports/frontend-menu-ia-governance.md","docs/user-manual/module-user-operation-guides-2026-05-16.md","docs/user-manual/user-manual-content.md","docs/user-manual/user-manual.html","e2e/.auth/admin.json","e2e/playwright-report/index.html","e2e/scripts/verify-view-governance.mjs","e2e/test-results/results.json","e2e/tests/acquisition-center-smoke.spec.ts","e2e/tests/acquisition-center/acquisition-center.spec.ts","e2e/tests/auth/_tmp-marketing-deep-interactions.spec.ts","e2e/tests/auth/acquisition-marketing-pages-smoke.spec.ts","e2e/tests/auth/channel-integrations-smoke.spec.ts","e2e/tests/auth/channels-crud-smoke.spec.ts","e2e/tests/auth/security-settings-smoke.spec.ts","e2e/tests/auth/workflow-generator-smoke.spec.ts","e2e/tests/comprehensive/13-centers-full-interaction.spec.ts","e2e/tests/comprehensive/README-13-centers.md","e2e/tests/comprehensive/all-centers-full-coverage.spec.ts","e2e/tests/comprehensive/all-menus-full-e2e.spec.ts","e2e/tests/comprehensive/all-menus-quick-smoke.spec.ts","e2e/tests/crud/module-catalog.generated.json","e2e/tests/crud/module-catalog.overrides.ts","e2e/tests/fixtures/system-center.ts","e2e/tests/navigation/requested-menu-whitelist.ts","e2e/tests/ui-modules/governance-driven-modules.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/modules/audit-logs.ts","frontend/src/api/modules/operation-logs.ts","frontend/src/i18n/menu-map.ts","frontend/src/router/__tests__/acquisition-menu-governance.test.ts","frontend/src/router/__tests__/route-permission-compat.test.ts","frontend/src/router/__tests__/sales-menu-governance.test.ts","frontend/src/router/__tests__/system-infra-menu-governance.test.ts","frontend/src/router/index.ts","frontend/src/router/menu.ts","frontend/src/router/modules/content-social.ts","frontend/src/router/modules/hr.ts","frontend/src/router/modules/supplemental.ts","frontend/src/router/modules/supply-chain.ts","frontend/src/views/__tests__/audit-logs-g4.smoke.test.ts","frontend/src/views/__tests__/login-operation-logs-g4.smoke.test.ts","frontend/src/views/admin/audit-logs/Index.vue","frontend/src/views/admin/audit-logs/__tests__/admin-audit-logs-g4.smoke.test.ts","frontend/src/views/biz-sequences/Index.vue","frontend/src/views/system/__tests__/system-center-g4.smoke.test.ts","frontend/src/views/workflow-generator/Index.vue","frontend/src/views/workflow-generator/__tests__/workflow-generator.smoke.test.ts","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/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/module-coverage-matrix.latest.json"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5471885,"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":8,"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-18T09:33:07+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
|
1779069127
|
1779069305
|
0
|
1779068089
|
1779069306
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23382
|
Refine finance, sales, and store governance covera Refine finance, sales, and store governance coverage...
|
6
|
5
|
ci.yml
|
23299
|
5
|
0
|
refs/heads/main
|
65a364c96c37bfde66bcbb2a6ef6a6bef1331d99
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"98fe893d6daad0b3005b8e39330274d3b76ebf26","after":"65a364c96c37bfde66bcbb2a6ef6a6bef1331d99","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/98fe893d6daad0b3005b8e39330274d3b76ebf26...65a364c96c37bfde66bcbb2a6ef6a6bef1331d99","commits":[{"id":"65a364c96c37bfde66bcbb2a6ef6a6bef1331d99","message":"Refine finance, sales, and store governance coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/65a364c96c37bfde66bcbb2a6ef6a6bef1331d99","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-18T09:00:12-07:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/finance-center-domain-governance-2026-05-17.md","docs/governance/sales-center-domain-governance-2026-05-17.md","docs/governance/store-operations-center-domain-governance-2026-05-17.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},{"id":"21b6793e5cba94faf26270f5c57ca0e54f5e064b","message":"Merge remote-tracking branch 'origin/claude/frosty-panini-cf8e9a'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/21b6793e5cba94faf26270f5c57ca0e54f5e064b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-18T08:57:17-07:00","added":[],"removed":[],"modified":["reports/project-census.baseline.json","reports/project-census.latest.json","scripts/audit-project-census.ts"]},{"id":"4ebe9e3c5ba7356aa35d0ade928af2552e9e083a","message":"Merge remote-tracking branch 'origin/claude/confident-lamport-43f821'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/4ebe9e3c5ba7356aa35d0ade928af2552e9e083a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-18T08:57:17-07:00","added":["backend/prisma/migrations/20260525020000_enable_rls_predictive_analytics/migration.sql"],"removed":[],"modified":["backend/src/modules/email-templates/email-template.schema.ts","backend/src/modules/learning-paths/learning-paths.service.ts","backend/src/modules/price-books/price-definition.schema.ts","frontend/src/api/modules/livestream-schedules.ts","reports/field-payload-audit.latest.json","reports/n1-queries-audit.latest.json","reports/rls-coverage-audit.latest.json"]},{"id":"fb2f8296cd3942c8d8d581900f5606588fd8142a","message":"Merge remote-tracking branch 'origin/claude/awesome-heisenberg-0c695e'\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/fb2f8296cd3942c8d8d581900f5606588fd8142a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-18T08:57:17-07:00","added":[],"removed":[],"modified":[]},{"id":"d48e021698388dbdb14c78e2a74528bb328be212","message":"Merge remote-tracking branch 'origin/main'\n\n# Conflicts:\n#\tCLAUDE.md\n#\treports/project-census.baseline.json\n#\treports/project-census.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d48e021698388dbdb14c78e2a74528bb328be212","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-18T08:56:31-07:00","added":["docs/reports/view-audit-domains/a1-acquisition-center-2026-05-18.md","docs/reports/view-audit-domains/a2-finance-center-2026-05-18.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-05-18.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-05-18.md","docs/reports/view-audit-domains/a5-admin-center-2026-05-18.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-05-18.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-05-18.md","docs/reports/view-audit-domains/a8-system-center-2026-05-18.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-05-18.md","docs/reports/view-audit-full-matrix-2026-05-18.md"],"removed":[],"modified":["CLAUDE.md","e2e/scripts/lib/view-audit.mjs","e2e/scripts/lib/view-audit.overrides.mjs","e2e/tests/ui-modules/view-governance.generated.json","reports/project-census.baseline.json","reports/project-census.latest.json","reports/view-module-audit.latest.json","scripts/audit-project-census.ts"]}],"total_commits":0,"head_commit":{"id":"65a364c96c37bfde66bcbb2a6ef6a6bef1331d99","message":"Refine finance, sales, and store governance coverage\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/65a364c96c37bfde66bcbb2a6ef6a6bef1331d99","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-18T09:00:12-07:00","added":[],"removed":[],"modified":["AGENTS.md","CLAUDE.md","GEMINI.md","README.md","docs/governance/finance-center-domain-governance-2026-05-17.md","docs/governance/sales-center-domain-governance-2026-05-17.md","docs/governance/store-operations-center-domain-governance-2026-05-17.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5472698,"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":9,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-18T10:09:30+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
|
8
|
1779120225
|
1779120604
|
0
|
1779120223
|
1779120606
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23412
|
C63:默认主链角色互换——HubertFA 为默认主对齐器,SOFA 降为二次窗口校验
|
60
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f73daf0a17c4cd19344f03ba21afcc326a49a650","after":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/f73daf0a17c4cd19344f03ba21afcc326a49a650...a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","commits":[{"id":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","message":"C63:默认主链角色互换——HubertFA 为默认主对齐器,SOFA 降为二次窗口校验\n\n- contracts DEFAULT_MAIN_ALIGNER_ID sofa_mandarin -\u003e hubertfa(商用许可明确 +\n C61 拼接对齐 A/B 反超;内部/商用缺省口径合一),注册表 displayName/notes 同步,\n 契约测试锁「默认必须商用可选 + commercialUse=true」不变式\n- run_pipeline 新增 SOFA 真实声学二次窗口校验(6.5 步):回投主时钟后 SOFA\n (--no-hubert-verifier 子进程跨 venv)对同一输入独立二次对齐,逐行 onset/end\n \u003e250ms 标 sofa_boundary_disagreement(C50 角色完整镜像互换)\n- fail-closed 三层判责:商用上下文/缺 venv/缺 ckpt/执行失败均降级 portable\n 边界校验,verification.summary.mode + honesty.sofaSecondPass.skipReason 如实\n 登记;实测商用降级 + 内部研发真跑(73 行、60 行标复核)双路径\n- fastify HTTP 默认 run 断言随翻转更新;smoke 7/7、runner 47/47、\n check:runtime 316/316、check:ui 34/34、pnpm check 全绿\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:59:27-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/alignment.http.test.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","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/model-evidence/pipeline-smoke.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","workers/pipeline/run_pipeline.py"]},{"id":"d343e1b5b3a23790be6707e80fa48060a0984c1f","message":"C62:UI 随 C61 更新——主/校角色标签按 mainAlignerId 特化 + 拼接计划上卡\n\n- runMapping 新增 runOperationLabel/runVerifierLabel:local_align 标签\n sofa→「SOFA 字级对齐」/hubertfa→「HubertFA 拼接对齐」,校验器后缀\n hubertfa 主→SOFA、sofa 主→HubertFA(曾写死,hubertfa run 主/校陈述颠倒)\n- TopBar/InfoTab/RunEvidenceCard/StepModal(入队/运行态/verify/score 描述)\n 全部按 run 动态陈述;hubertfa 的 local_align 弹窗如实描述拼接对齐主路径\n- RunEvidenceCard 新增 lyra-concat-plan:proposal honesty.concat 真实计划上卡\n (保留块/剪除时长/带宽),非拼接 proposal 不渲染\n- LoadModal 注册表单源锁不动(verifier 角色语义分层属 contracts 层议题)\n- e2e:hubertfa 拼接文案断言 + SOFA 校验按钮/verifier 断言纠偏 + 拼接计划\n 正反用例;实页双向核验 hubertfa/sofa run 各自正确\n- check:ui 34/34、lyra-parity 绿、pnpm check 全绿;ownTestCases 349→350、\n uiTestsPassed 33→34\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/d343e1b5b3a23790be6707e80fa48060a0984c1f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:46:32-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/lyra-studio/components/PipelineBar.tsx","apps/web/src/features/lyra-studio/components/TopBar.tsx","apps/web/src/features/lyra-studio/components/modals/StepModal.tsx","apps/web/src/features/lyra-studio/components/right/InfoTab.tsx","apps/web/src/features/lyra-studio/components/right/RunEvidenceCard.tsx","apps/web/src/features/lyra-studio/runMapping.ts","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/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"41d8010779db5ae99520052ce9a87d9113453284","message":"C61:HubertFA 主对齐切换拼接对齐主路径(剪长间隙+带状全局一次性对齐+回投主时钟)\n\n- workers/pipeline --concat:粗窗保留块(±800ms,仅剪 \u003e2s 长空隙)拼接 + 480ms\n 真静音锚 -\u003e 全歌词一次性带状全局 forced-align -\u003e SOFA 校验后分段线性回投\n- 带状 Viterbi(行窗 ±400ms + 邻行夹紧 300ms)封顶长程漂移;ph_edge 边界\n logit 奖励推进转移(≤500ms 72.5%-\u003e92.8% 贡献显著)\n- runner 默认 HubertFA 命令追加 --concat(SOFA 主链与桩注入不受影响)\n- 晴天 A/B(同 vocals/切片/真值):行 ≤500ms 76.8%-\u003e92.75%(商用链首次过\n 80% 阈值)、p90 746-\u003e484ms、字 median 606-\u003e399ms;插值行 3 优 1 劣优雅退化;\n contracts 完整性 0 违规 + 生产 schema GREEN\n- 证据 reports/model-evidence/qingtian-precision-concat.latest.json(含迭代\n 方法论留痕:纯全局漂移教训/带状/夹紧/边界奖励/定参纪律)\n- 自测 --self-test-concat 11/11、smoke 7/7、runner 47/47、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/41d8010779db5ae99520052ce9a87d9113453284","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:27:18-07:00","added":["reports/model-evidence/qingtian-precision-concat.latest.json"],"removed":[],"modified":["CLAUDE.md","packages/pipeline-runner/src/index.ts","packages/pipeline-runner/src/runner.test.ts","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/model-evidence/pipeline-smoke.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/song-library.latest.json","reports/validation-source.latest.json","workers/pipeline/run_pipeline.py"]},{"id":"67e69765b4cee2cc6384c3a280bfab7ec607e733","message":"C60:全局时间轴接真实结构证据,BPM 水合与解析层 tab 解耦\n\n- GlobalTimeline 结构色带消费 latestStructureEvidence(与音乐解析层同一读模型),\n 真实段不合并、段数与解析层一致;SegKind 补 outro;无证据回退装饰 fixture\n 并以 lyra-structure-source 徽标/data-structure-source 诚实标注\n- setRealBpm 同步从 AnalysisStub(仅 tab 激活时挂载)迁至常驻 useStudioBridge,\n 不点解析层全局时间轴也显示真实 BPM\n- e2e:装饰标注 → 注入真实 structure_evidence → 不点 tab 断言段数/outro/134 BPM 上轴\n- 棘轮:ownTestCases 348→349、uiTestsPassed 32→33(check:ui 33/33、pnpm check 全绿)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/67e69765b4cee2cc6384c3a280bfab7ec607e733","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T21:41:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/lyra-studio.spec.ts","apps/web/src/features/alignment/queries.ts","apps/web/src/features/lyra-studio/components/left/AnalysisStub.tsx","apps/web/src/features/lyra-studio/components/timeline/GlobalTimeline.tsx","apps/web/src/features/lyra-studio/fixtures/segments.ts","apps/web/src/features/lyra-studio/hooks/useStudioBridge.ts","apps/web/src/features/lyra-studio/utils/styles.ts","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/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","message":"C63:默认主链角色互换——HubertFA 为默认主对齐器,SOFA 降为二次窗口校验\n\n- contracts DEFAULT_MAIN_ALIGNER_ID sofa_mandarin -\u003e hubertfa(商用许可明确 +\n C61 拼接对齐 A/B 反超;内部/商用缺省口径合一),注册表 displayName/notes 同步,\n 契约测试锁「默认必须商用可选 + commercialUse=true」不变式\n- run_pipeline 新增 SOFA 真实声学二次窗口校验(6.5 步):回投主时钟后 SOFA\n (--no-hubert-verifier 子进程跨 venv)对同一输入独立二次对齐,逐行 onset/end\n \u003e250ms 标 sofa_boundary_disagreement(C50 角色完整镜像互换)\n- fail-closed 三层判责:商用上下文/缺 venv/缺 ckpt/执行失败均降级 portable\n 边界校验,verification.summary.mode + honesty.sofaSecondPass.skipReason 如实\n 登记;实测商用降级 + 内部研发真跑(73 行、60 行标复核)双路径\n- fastify HTTP 默认 run 断言随翻转更新;smoke 7/7、runner 47/47、\n check:runtime 316/316、check:ui 34/34、pnpm check 全绿\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T22:59:27-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/alignment.http.test.ts","packages/contracts/src/alignment-models.test.ts","packages/contracts/src/alignment-models.ts","packages/contracts/src/alignment.test.ts","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/model-evidence/pipeline-smoke.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/song-library.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","workers/pipeline/run_pipeline.py"]},"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":3461,"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-14T12:26:15+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
|
1784010092
|
0
|
1784009830
|
1784010092
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23413
|
C64:CI 静态门禁与本机磁盘资产门禁解耦(首次远端 CI 红盘判责)
|
60
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
1270a9b62cf64e8bf85e71686a39728438f36160
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3","after":"1270a9b62cf64e8bf85e71686a39728438f36160","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/a6e738a4e2b096ebd400cc03e3cbd92e6d3234f3...1270a9b62cf64e8bf85e71686a39728438f36160","commits":[{"id":"1270a9b62cf64e8bf85e71686a39728438f36160","message":"C64:CI 静态门禁与本机磁盘资产门禁解耦(首次远端 CI 红盘判责)\n\n首推 GitHub 后 governance.yml 静态 job 如预期红盘:check:models/\ncheck:alignment-models/check:library 的本质是「登记 ↔ 磁盘实况」本机门禁,\n而模型权重(~13GB)与曲库音频按体积/版权纪律不入库,CI runner 必红且\n不构成真实信号。\n\n- 三脚本加 GOVERNANCE_SKIP_LOCAL_ASSET_GATES=true 显式跳过 seam:醒目声明\n + 不产报告不伪造绿盘;本机默认不设、照常硬校验(本机双路径已验证)\n- workflow 静态 job 设置该变量并注释证据真源(已提交的本机\n reports/*.latest.json,由 check:governance 棘轮消费)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/1270a9b62cf64e8bf85e71686a39728438f36160","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:21:23-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/validation-source.latest.json","scripts/check-alignment-models.mjs","scripts/check-model-assets.mjs","scripts/check-song-library.mjs"]}],"total_commits":0,"head_commit":{"id":"1270a9b62cf64e8bf85e71686a39728438f36160","message":"C64:CI 静态门禁与本机磁盘资产门禁解耦(首次远端 CI 红盘判责)\n\n首推 GitHub 后 governance.yml 静态 job 如预期红盘:check:models/\ncheck:alignment-models/check:library 的本质是「登记 ↔ 磁盘实况」本机门禁,\n而模型权重(~13GB)与曲库音频按体积/版权纪律不入库,CI runner 必红且\n不构成真实信号。\n\n- 三脚本加 GOVERNANCE_SKIP_LOCAL_ASSET_GATES=true 显式跳过 seam:醒目声明\n + 不产报告不伪造绿盘;本机默认不设、照常硬校验(本机双路径已验证)\n- workflow 静态 job 设置该变量并注释证据真源(已提交的本机\n reports/*.latest.json,由 check:governance 棘轮消费)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/1270a9b62cf64e8bf85e71686a39728438f36160","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:21:23-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml","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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/song-library.latest.json","reports/validation-source.latest.json","scripts/check-alignment-models.mjs","scripts/check-model-assets.mjs","scripts/check-song-library.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":3710,"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:17: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":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
|
1784010285
|
0
|
1784010092
|
1784010285
|
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
|
|
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
|
|
23436
|
docs: refresh published SHA snapshot
|
64
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
07bdfd6b5c1898d76a113986ab5a6e7ade243839
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","message":"docs: refresh published SHA snapshot\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/07bdfd6b5c1898d76a113986ab5a6e7ade243839","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:33:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},{"id":"515f82aceaa7057454f2b135a8c82e980cef442d","message":"feat(svc): 音色军火库三件套——CFM/CFG 全链旋钮 + 参考自动去混响 + 多段拼接\n\n- nSteps/cfgScale:contracts 限幅 coerce → cover_jobs 增量列(迁移)→ 双后端\n 持久化+worker 透传 → sidecar 表单 → 前端「高级参数」区(含一直未露出的移调)\n- 音色参考默认走 分离+去混响 增强链(enhance_timbre 可关);干录音≈无损通过\n- build_prompt_multiseg:按静音切段→时长×能量排序→时间序 50ms 交叉淡化拼接,\n 合成用例验证三段唱段拿满 29.9s、段间静音全剔除(单窗口法会夹带静音)\n- 门禁:check exit 0 / runtime 87 tests(地板 87)/ ui 6 用例;参数贯通冒烟\n 实证(nSteps=8 存库→sidecar 接收;越界 400;垃圾文件秒级人话错误)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/515f82aceaa7057454f2b135a8c82e980cef442d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:32:27-07:00","added":["apps/api-fastify/prisma/migrations/20260722100000_cover_job_infer_params/migration.sql","apps/api-nestjs/prisma/migrations/20260722100000_cover_job_infer_params/migration.sql","reports/ui-acceptance-svc-files/ui-acceptance-mrvpbprt/jobs/dec89f00-288c-4793-a3e6-83f87e8a55d7/song.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvpbprt/timbres/a84c1bc4-8b4e-4911-9c75-8fd0271f886c.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvpbprt/timbres/db8e34cb-e986-4c76-81d4-f9aba530afcd.wav"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/svc/cover-jobs.service.ts","apps/api-fastify/src/modules/svc/sidecar.client.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/svc/cover-jobs.service.ts","apps/api-nestjs/src/svc/sidecar.client.ts","apps/web/src/components/SvcPanel.tsx","apps/web/src/lib/api.ts","docs/domain/svc-cover-blueprint.md","packages/contracts/src/cover.test.ts","packages/contracts/src/cover.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","sidecars/soulx-singer/__pycache__/svc_pipeline.cpython-310.pyc","sidecars/soulx-singer/server.py","sidecars/soulx-singer/svc_pipeline.py"]},{"id":"8c2000bfc0f0f515f3e85cc32184c5e64aeeb1c8","message":"feat(svc): 音色获取质量三连修——录音关通话处理 + 参考智能选段 + 上限30s\n\n- 浏览器录音显式关闭 echoCancellation/noiseSuppression/autoGainControl:\n 通话向处理会削唱声谐波/抽压动态,是音色相似度的隐形杀手\n- sidecar prepare_timbre 智能选段:去首尾静音 + 选「有声占比×能量」最高的\n 连续窗口(合成用例验证:25s 静音开头场景有效信息 2.4×于盲取开头)\n- 音色参考上限 20s→30s;UI 文案建议 20-30 秒清唱;蓝图已知约束同步\n\ncheck:ui 6/6 全绿(假麦克风带新约束)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/8c2000bfc0f0f515f3e85cc32184c5e64aeeb1c8","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:20:33-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".codex/agents/acceptance-runner.toml",".codex/agents/module-blueprint.toml","reports/ui-acceptance-svc-files/ui-acceptance-mrvp0i9x/jobs/721ef856-6cc6-4a99-8791-40ebb6a2f621/song.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvp0i9x/timbres/3ba94b55-4664-4066-9c03-8ba48a8f1a6f.wav","reports/ui-acceptance-svc-files/ui-acceptance-mrvp0i9x/timbres/fab7db0b-8d46-4586-a881-633467fe20da.wav"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/SvcPanel.tsx","apps/web/src/lib/audio-record.ts","docs/domain/svc-cover-blueprint.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","sidecars/soulx-singer/__pycache__/svc_pipeline.cpython-310.pyc","sidecars/soulx-singer/svc_pipeline.py"]},{"id":"e019e32157a468c1e93b874228ee37bf39989c9f","message":"docs: 发布快照登记双远端状态(GitHub 已核对,Gitea 待建仓)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/e019e32157a468c1e93b874228ee37bf39989c9f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T22:27:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"6614c0cee2254d7cf2c4e081e816642cc2c8aff7","message":"docs: 发布状态快照登记首提交 b13df4a(远端待建立)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/6614c0cee2254d7cf2c4e081e816642cc2c8aff7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T22:18:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"07bdfd6b5c1898d76a113986ab5a6e7ade243839","message":"docs: refresh published SHA snapshot\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/07bdfd6b5c1898d76a113986ab5a6e7ade243839","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T23:33:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":64,"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":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.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-22T14:37:12+08:00","updated_at":"2026-07-22T14:37: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":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
|
5
|
1784702256
|
1784702338
|
0
|
1784702255
|
1784702338
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23454
|
初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)
|
67
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","message":"初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)\n\n- 基础框架迁移(git archive 受管文件 + 身份改造 + 三级门禁,静态 pnpm check 全绿)\n- phase1 结构→歌词行全局单调 DP 对齐:以官方歌词为准强制覆盖、非演唱结构防幻听先验、\n 六语种语音层(拼音/jyutping/kakasi读音/jamo/metaphone/拉丁)、多块投票定语言、\n 异体字读音等价;phase2 MMS 三句滑窗 + VAD 尾校验产出行/字级时间\n- 四模型本地部署(SongFormer/Qwen3-ASR-1.7B/mms-fa/HTDemucs,权重不进 git,\n manifest SHA256 + check:model-assets 门禁 + smoke 证据)\n- Web 复核工作台 /review:载入/一键执行/重跑、试听/连续播放/逐字对比、问题行过滤、\n 语言徽标、错配警示;run_song 一键编排(缺歌声自动分离,产物落原目录复用)\n- pytest 48/48;真歌验证:晴天×3路径、后来、日语/粤语曲目(精度未做人工金标验收)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-27T23:15:09-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","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/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/health.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-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/review/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/examples/demo_song/asr.json","services/structure_lyrics/examples/demo_song/lyrics.txt","services/structure_lyrics/examples/demo_song/structure.json","services/structure_lyrics/phase1/__init__.py","services/structure_lyrics/phase1/align.py","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase1/lyrics.py","services/structure_lyrics/phase1/models.py","services/structure_lyrics/phase1/pipeline.py","services/structure_lyrics/phase1/similarity.py","services/structure_lyrics/phase1/structure.py","services/structure_lyrics/phase1/textnorm.py","services/structure_lyrics/phase2/__init__.py","services/structure_lyrics/phase2/audio_io.py","services/structure_lyrics/phase2/backend.py","services/structure_lyrics/phase2/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_align.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_multilang.py","services/structure_lyrics/tests/test_phase2.py","tsconfig.base.json","turbo.json","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/README.md","workers/mms-fa/align_tasks.py","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/qwen3-asr/README.md","workers/qwen3-asr/requirements_qwen3_asr.txt","workers/qwen3-asr/run_qwen3_asr.py","workers/qwen3-asr/testdata/asr_zh.txt","workers/qwen3-asr/testdata/asr_zh.wav","workers/qwen3-asr/vendor/qwen3_asr/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/boundary.py","workers/qwen3-asr/vendor/qwen3_asr/align/chars.py","workers/qwen3-asr/vendor/qwen3_asr/align/monotonic.py","workers/qwen3-asr/vendor/qwen3_asr/align/observation.py","workers/qwen3-asr/vendor/qwen3_asr/align/pcenter.py","workers/qwen3-asr/vendor/qwen3_asr/align/pipeline.py","workers/qwen3-asr/vendor/qwen3_asr/align/progress.py","workers/qwen3-asr/vendor/qwen3_asr/align/tail.py","workers/qwen3-asr/vendor/qwen3_asr/align/text.py","workers/qwen3-asr/vendor/qwen3_asr/align/windows.py","workers/qwen3-asr/vendor/qwen3_asr/align/wordless.py","workers/qwen3-asr/vendor/qwen3_asr/align_cli.py","workers/qwen3-asr/vendor/qwen3_asr/audio.py","workers/qwen3-asr/vendor/qwen3_asr/cache.py","workers/qwen3-asr/vendor/qwen3_asr/cli.py","workers/qwen3-asr/vendor/qwen3_asr/config.py","workers/qwen3-asr/vendor/qwen3_asr/diagnostics_cli.py","workers/qwen3-asr/vendor/qwen3_asr/engine.py","workers/qwen3-asr/vendor/qwen3_asr/forced_aligner.py","workers/qwen3-asr/vendor/qwen3_asr/service.py","workers/qwen3-asr/vendor/qwen3_asr/stream.py","workers/qwen3-asr/vendor/qwen3_asr/stream_cli.py","workers/qwen3-asr/vendor/qwen3_asr/structure.py","workers/qwen3-asr/vendor/qwen3_asr/textutil.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review_cli.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score_cli.py","workers/qwen3-asr/vendor/qwen3_asr/voice_diagnostics.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","message":"初始提交:SongFormer 结构时间歌词行(治理底座 + 双阶段流水线 + 复核工作台)\n\n- 基础框架迁移(git archive 受管文件 + 身份改造 + 三级门禁,静态 pnpm check 全绿)\n- phase1 结构→歌词行全局单调 DP 对齐:以官方歌词为准强制覆盖、非演唱结构防幻听先验、\n 六语种语音层(拼音/jyutping/kakasi读音/jamo/metaphone/拉丁)、多块投票定语言、\n 异体字读音等价;phase2 MMS 三句滑窗 + VAD 尾校验产出行/字级时间\n- 四模型本地部署(SongFormer/Qwen3-ASR-1.7B/mms-fa/HTDemucs,权重不进 git,\n manifest SHA256 + check:model-assets 门禁 + smoke 证据)\n- Web 复核工作台 /review:载入/一键执行/重跑、试听/连续播放/逐字对比、问题行过滤、\n 语言徽标、错配警示;run_song 一键编排(缺歌声自动分离,产物落原目录复用)\n- pytest 48/48;真歌验证:晴天×3路径、后来、日语/粤语曲目(精度未做人工金标验收)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3f76d2e5e9efe72c7ebe9d9faa2f335ccd2dbf4f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-27T23:15:09-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","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/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/health.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-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/review/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/examples/demo_song/asr.json","services/structure_lyrics/examples/demo_song/lyrics.txt","services/structure_lyrics/examples/demo_song/structure.json","services/structure_lyrics/phase1/__init__.py","services/structure_lyrics/phase1/align.py","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase1/lyrics.py","services/structure_lyrics/phase1/models.py","services/structure_lyrics/phase1/pipeline.py","services/structure_lyrics/phase1/similarity.py","services/structure_lyrics/phase1/structure.py","services/structure_lyrics/phase1/textnorm.py","services/structure_lyrics/phase2/__init__.py","services/structure_lyrics/phase2/audio_io.py","services/structure_lyrics/phase2/backend.py","services/structure_lyrics/phase2/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_align.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_multilang.py","services/structure_lyrics/tests/test_phase2.py","tsconfig.base.json","turbo.json","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/README.md","workers/mms-fa/align_tasks.py","workers/mms-fa/requirements_mms_fa.txt","workers/mms-fa/run_mms_fa.py","workers/qwen3-asr/README.md","workers/qwen3-asr/requirements_qwen3_asr.txt","workers/qwen3-asr/run_qwen3_asr.py","workers/qwen3-asr/testdata/asr_zh.txt","workers/qwen3-asr/testdata/asr_zh.wav","workers/qwen3-asr/vendor/qwen3_asr/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/__init__.py","workers/qwen3-asr/vendor/qwen3_asr/align/boundary.py","workers/qwen3-asr/vendor/qwen3_asr/align/chars.py","workers/qwen3-asr/vendor/qwen3_asr/align/monotonic.py","workers/qwen3-asr/vendor/qwen3_asr/align/observation.py","workers/qwen3-asr/vendor/qwen3_asr/align/pcenter.py","workers/qwen3-asr/vendor/qwen3_asr/align/pipeline.py","workers/qwen3-asr/vendor/qwen3_asr/align/progress.py","workers/qwen3-asr/vendor/qwen3_asr/align/tail.py","workers/qwen3-asr/vendor/qwen3_asr/align/text.py","workers/qwen3-asr/vendor/qwen3_asr/align/windows.py","workers/qwen3-asr/vendor/qwen3_asr/align/wordless.py","workers/qwen3-asr/vendor/qwen3_asr/align_cli.py","workers/qwen3-asr/vendor/qwen3_asr/audio.py","workers/qwen3-asr/vendor/qwen3_asr/cache.py","workers/qwen3-asr/vendor/qwen3_asr/cli.py","workers/qwen3-asr/vendor/qwen3_asr/config.py","workers/qwen3-asr/vendor/qwen3_asr/diagnostics_cli.py","workers/qwen3-asr/vendor/qwen3_asr/engine.py","workers/qwen3-asr/vendor/qwen3_asr/forced_aligner.py","workers/qwen3-asr/vendor/qwen3_asr/service.py","workers/qwen3-asr/vendor/qwen3_asr/stream.py","workers/qwen3-asr/vendor/qwen3_asr/stream_cli.py","workers/qwen3-asr/vendor/qwen3_asr/structure.py","workers/qwen3-asr/vendor/qwen3_asr/textutil.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_review_cli.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score.py","workers/qwen3-asr/vendor/qwen3_asr/unowned_voice_score_cli.py","workers/qwen3-asr/vendor/qwen3_asr/voice_diagnostics.py","workers/structure/README.md","workers/structure/requirements_structure.txt","workers/structure/run_structure.py","workers/structure/vendor/wav2vec2-conformer-rope-large-960h-ft.config.json"],"removed":[],"modified":[]},"repository":{"id":67,"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":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics/languages","html_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/songformer-structure-lyrics.git","clone_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics.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-28T14:19:19+08:00","updated_at":"2026-07-28T14:20:17+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
|
5
|
1785219618
|
1785219660
|
0
|
1785219617
|
1785219660
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23462
|
chore: refresh quotation acceptance evidence
|
72
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
5e1d3d6748f60f625f7cd20b8a5defc957497e81
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"5e1d3d6748f60f625f7cd20b8a5defc957497e81","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"5e1d3d6748f60f625f7cd20b8a5defc957497e81","message":"chore: refresh quotation acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/5e1d3d6748f60f625f7cd20b8a5defc957497e81","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:53:13-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"ce6add1f419d50f150baffe78acbc6adc81b0ea3","message":"feat: implement quotation core workflow\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/ce6add1f419d50f150baffe78acbc6adc81b0ea3","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:52:01-07:00","added":["apps/api-fastify/prisma/migrations/20260730120000_quotation_core/migration.sql","apps/api-fastify/src/modules/customers/customers.service.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/routes/customers.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/src/routes/quotations.ts","apps/api-nestjs/prisma/migrations/20260730120000_quotation_core/migration.sql","apps/api-nestjs/src/customers/customers.controller.ts","apps/api-nestjs/src/customers/customers.module.ts","apps/api-nestjs/src/customers/customers.service.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.module.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.controller.ts","apps/api-nestjs/src/quotations/quotations.module.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/web/src/app/quote/[accessToken]/page.tsx","apps/web/src/app/quote/[accessToken]/print/page.tsx","apps/web/src/features/customers/api/customers-api.ts","apps/web/src/features/customers/components/CustomerLibrary.tsx","apps/web/src/features/customers/hooks/use-customers.ts","apps/web/src/features/products/api/products-api.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/products/hooks/use-products.ts","apps/web/src/features/quotations/api/quotations-api.ts","apps/web/src/features/quotations/components/PublicQuotationView.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/features/quotations/hooks/use-quotations.ts","docs/domain/quotation-blueprint.md","packages/contracts/src/quotation.ts"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/utils.ts","docs/domain-glossary.md","docs/domain/owner-matrix.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/realtime.ts","pnpm-lock.yaml","reports/baseline.json","scripts/check-ui-acceptance.mjs"]},{"id":"4285699248e5f7d702171ee66f7ea2d5e57a4aed","message":"chore: refresh local acceptance reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/4285699248e5f7d702171ee66f7ea2d5e57a4aed","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:22:09-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"37e3a10e3f530299526a984beacd597b13ab098a","message":"chore: refresh migration evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/37e3a10e3f530299526a984beacd597b13ab098a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:55:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"e6336ca3f8154422a56269945d3f39343dd952fa","message":"chore: migrate base framework\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/e6336ca3f8154422a56269945d3f39343dd952fa","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:42:32-07:00","added":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/agents/module-blueprint.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","AGENTS.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/.gitignore","apps/api-fastify/package.json","apps/api-fastify/pnpm-lock.yaml","apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-fastify/prisma/migrations/migration_lock.toml","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/lib/statemachine.ts","apps/api-fastify/src/modules/orders/orders.service.ts","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/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/src/routes/health.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-fastify/src/routes/ws.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-fastify/tsconfig.json","apps/api-fastify/vitest.config.ts","apps/api-nestjs/.env.example","apps/api-nestjs/.gitignore","apps/api-nestjs/docker-compose.yml","apps/api-nestjs/nest-cli.json","apps/api-nestjs/package.json","apps/api-nestjs/pnpm-lock.yaml","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260705080000_outbox_dead_letter/migration.sql","apps/api-nestjs/prisma/migrations/migration_lock.toml","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/envelope.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/common/zod-validation.pipe.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/prisma/prisma.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/sse/sse.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/src/statemachine/statemachine.engine.ts","apps/api-nestjs/src/statemachine/statemachine.types.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.module.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/tsconfig.build.json","apps/api-nestjs/tsconfig.json","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/.gitignore","apps/web/components.json","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/pnpm-lock.yaml","apps/web/postcss.config.js","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/components/ui/label.tsx","apps/web/src/components/ui/separator.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/types.ts","apps/web/src/lib/utils.ts","apps/web/src/store/realtime.ts","apps/web/src/store/useAppStore.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0002-use-nextjs-app-router.md","docs/adr/0003-use-nestjs-with-fastify-adapter.md","docs/adr/0004-use-postgresql.md","docs/adr/0005-use-prisma.md","docs/adr/0006-realtime-sse-and-websocket.md","docs/adr/0007-use-bullmq-queue.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/0009-dual-backend-governance-parity.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","package.json","packages/config/eslint/base.mjs","packages/config/package.json","packages/config/prettier/index.json","packages/config/tsconfig/base.json","packages/config/tsconfig/nextjs.json","packages/config/tsconfig/node.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/realtime.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/contracts/tsconfig.json","pnpm-lock.yaml","pnpm-workspace.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/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-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","tsconfig.base.json","turbo.json"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"5e1d3d6748f60f625f7cd20b8a5defc957497e81","message":"chore: refresh quotation acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/5e1d3d6748f60f625f7cd20b8a5defc957497e81","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:53:13-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/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":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-07-31T03:57:10+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
|
5
|
1785441431
|
1785441505
|
0
|
1785441430
|
1785441505
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23463
|
docs: record initial Gitea publication
|
72
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
aef43abd7ee47a8b0e3b245bafbbd4025dd15e34
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5e1d3d6748f60f625f7cd20b8a5defc957497e81","after":"aef43abd7ee47a8b0e3b245bafbbd4025dd15e34","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/5e1d3d6748f60f625f7cd20b8a5defc957497e81...aef43abd7ee47a8b0e3b245bafbbd4025dd15e34","commits":[{"id":"aef43abd7ee47a8b0e3b245bafbbd4025dd15e34","message":"docs: record initial Gitea publication\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/aef43abd7ee47a8b0e3b245bafbbd4025dd15e34","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:58:21-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json","reports/ui-acceptance.latest.json"]}],"total_commits":0,"head_commit":{"id":"aef43abd7ee47a8b0e3b245bafbbd4025dd15e34","message":"docs: record initial Gitea publication\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/aef43abd7ee47a8b0e3b245bafbbd4025dd15e34","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T12:58:21-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json","reports/ui-acceptance.latest.json"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":579,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-07-31T03:57:10+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
|
8
|
1785441522
|
1785441882
|
0
|
1785441505
|
1785441882
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23491
|
chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bo chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bound...
|
74
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
a369f4ee008c621f3ef5ada67880cb52a9ad7c9b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6b3be1dafc25b3d82703595f7542769eae6b7744","after":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/6b3be1dafc25b3d82703595f7542769eae6b7744...a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","commits":[{"id":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","message":"chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bound\n\n本次刷新的三级证据 provenance 均为 gitSha=fe9a6ae + worktreeDirty=false,\n是本仓第一次在 clean 检出点上取得完整三级绿盘(此前所有轮次都是 dirty 工作区)。\n按发布口径表严格解读,可宣称「本地在 commit fe9a6ae 这一 clean 检出点通过三级门禁」,\n仍不可外推为「远端已发布」或「远端 CI 已拦截」(G14 仍 OPEN)。\n\n- 静态 pnpm check 23:37Z 16 道门禁 + 棘轮 + lint + typecheck 全绿\n- 真实 DB check:runtime 23:38Z status=passed, 380 tests / 0 failures (floor 380)\n- 浏览器 check:ui 23:39Z status=passed, 14 用例 / 0 unexpected (floor 14)\n- 门禁对抗探针 probe:gates 11/11 挡下,并用三项元测试反证该套件本身会失败\n\nCLAUDE.md 动态区同步:\n- 发布快照按实更正。本快照在一个 session 内过期四次\n (66f0513 → b0d8e83 → 6b3be1d → a0563c4 → fe9a6ae),并实测遇到远端 503 不可达——\n 据此补记:发布状态只能实时 ls-remote 判定,远端不可达时只能声明\n 「最后一次成功验证的时刻与结果」,不得含糊成「当前已对齐」。\n- 证据新鲜度段标注三级 clean-bound,并新增 probe:gates 一行。\n- 真源地图「状态迁移并发写入」条按实改为 22 条 updateMany + 10 条 raw SQL,\n 写明 raw SQL 是受检的逃生阀而非免检通道。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:41:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"fe9a6ae90e99138fc09be0f7b2e75971b51f1275","message":"feat(governance): 固化对抗探针 pnpm probe:gates,把三类攻破路径变成可重复执行\n\n手工做负向测试不可靠且不可重复。本次把对抗性验收当天用到的攻击手法固化为\n11 条探针(scripts/adversarial-probes.mjs),覆盖三类攻破路径:\n- negative:注入真违规,门禁必须报红(证明有牙)\n- vacuous :破坏门禁的输入定位(改表格列数 / 改被扫描的表名),\n 门禁必须报红而不是「检查了 0 项然后通过」(证明关不掉)\n- binding :用无关代码满足泛化断言(unrelated.length \u003e 0 / 注释里写符号名),\n 门禁必须仍然报红(证明断言绑定到被检查对象本身)\n\n设计取舍\n- 刻意不进 pnpm check:它会临时改写源文件,只适合按需运行;\n 结束时逐字节还原现场并还原 latest 报告,探针产生的污染报告不进证据链\n- 锚点失效单独报 ANCHOR-STALE 且 exit 1:源码重构后锚点对不上,\n 意味着该路径本次无人验证,不等于安全——不得当成通过\n\n实测:11 条全部 BLOCKED,被攻破 0、锚点失效 0;运行前后 git status 指纹一致。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/fe9a6ae90e99138fc09be0f7b2e75971b51f1275","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:32:54-07:00","added":["scripts/adversarial-probes.mjs"],"removed":[],"modified":["CLAUDE.md","package.json"]},{"id":"a0563c40434d93ba1535ce1de39141bdd2b7889a","message":"fix(governance): 门禁空转加固 + 移除审批工单死负载,并回灌空转测试纪律\n\n对抗性验收(2026-08-17)发现「负向测试通过」并不足以证明门禁有牙:\n门禁还可能被**静默关掉**——扫描出 0 项然后宣布通过。两处实测:\n- check:owner-matrix 改表格列数后报「0 行登记,校验通过」\n- check:concurrency-guard 改表名后 raw 写链从 10 条静默降到 5 条仍 exit 0\n两者都是当天刚做完负向测试的门禁。\n\n修复\n- check:owner-matrix 增加 BUILT 行数下溢守卫(地板 25),识别不足即红\n- check:concurrency-guard 的 raw「0 行拒绝」判据绑定到该语句自身的结果变量,\n 避免被无关的 `unrelated.length \u003e 0` 骗过\n- 移除 ApprovalTicket 查询中三处 `include: { toolCalls: true }` 死负载:\n 无组件消费、无测试断言,属白付 JOIN;ToolCall 的读模型消费方按 owner-matrix\n 登记只有 ToolCallsPanel,自行取数\n\n回灌 CLAUDE.md\n- 收尾清单新增「空转测试」与「断言绑定」两条:凡是「扫描出 N 项并逐项断言」的门禁,\n N 本身必须有地板,否则 N=0 是最容易伪造的绿\n- 真源地图补记 10 条 raw SQL 写链为「受检的逃生阀」而非免检通道\n- 发布快照更新至 6b3be1d,并明确区分「已发布」与「已验收」:\n 三级绿盘取自工作区,不等于该提交本身通过门禁\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/a0563c40434d93ba1535ce1de39141bdd2b7889a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:24:24-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/platform/approval-tickets.service.ts","apps/api-nestjs/src/platform/approval-tickets.service.ts","apps/web/src/lib/types.ts","scripts/check-order-concurrency-guard.mjs","scripts/check-owner-matrix.mjs"]}],"total_commits":0,"head_commit":{"id":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","message":"chore(reports): 刷新治理证据,绑定提交 fe9a6ae——三级首次 clean-bound\n\n本次刷新的三级证据 provenance 均为 gitSha=fe9a6ae + worktreeDirty=false,\n是本仓第一次在 clean 检出点上取得完整三级绿盘(此前所有轮次都是 dirty 工作区)。\n按发布口径表严格解读,可宣称「本地在 commit fe9a6ae 这一 clean 检出点通过三级门禁」,\n仍不可外推为「远端已发布」或「远端 CI 已拦截」(G14 仍 OPEN)。\n\n- 静态 pnpm check 23:37Z 16 道门禁 + 棘轮 + lint + typecheck 全绿\n- 真实 DB check:runtime 23:38Z status=passed, 380 tests / 0 failures (floor 380)\n- 浏览器 check:ui 23:39Z status=passed, 14 用例 / 0 unexpected (floor 14)\n- 门禁对抗探针 probe:gates 11/11 挡下,并用三项元测试反证该套件本身会失败\n\nCLAUDE.md 动态区同步:\n- 发布快照按实更正。本快照在一个 session 内过期四次\n (66f0513 → b0d8e83 → 6b3be1d → a0563c4 → fe9a6ae),并实测遇到远端 503 不可达——\n 据此补记:发布状态只能实时 ls-remote 判定,远端不可达时只能声明\n 「最后一次成功验证的时刻与结果」,不得含糊成「当前已对齐」。\n- 证据新鲜度段标注三级 clean-bound,并新增 probe:gates 一行。\n- 真源地图「状态迁移并发写入」条按实改为 22 条 updateMany + 10 条 raw SQL,\n 写明 raw SQL 是受检的逃生阀而非免检通道。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:41:22-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":74,"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":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5509,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T07:16:57+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
|
8
|
1787010094
|
1787010157
|
0
|
1787010092
|
1787010157
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23495
|
chore(reports): 刷新治理证据,绑定提交 5acf362——容器化落地后三级重跑
|
74
|
5
|
governance.yml
|
9
|
5
|
0
|
refs/heads/main
|
b33f650552dbc4adad6df5ee670b6d9eba8eb125
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"15248a4a041b4e0b1716d65ce7327315a8d39176","after":"b33f650552dbc4adad6df5ee670b6d9eba8eb125","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/15248a4a041b4e0b1716d65ce7327315a8d39176...b33f650552dbc4adad6df5ee670b6d9eba8eb125","commits":[{"id":"b33f650552dbc4adad6df5ee670b6d9eba8eb125","message":"chore(reports): 刷新治理证据,绑定提交 5acf362——容器化落地后三级重跑\n\n三份报告 provenance 均为 gitSha=5acf362 + worktreeDirty=false。\n\n- 静态 pnpm check 00:32Z 16 道门禁 + 棘轮 + lint + typecheck 全绿\n- 真实 DB check:runtime 00:33Z status=passed, 380 tests / 0 failures (floor 380)\n- 浏览器 check:ui 00:34Z status=passed, 14 用例 / 0 unexpected (floor 14)\n\n本轮为什么必须重跑而不能沿用上一份(fe9a6ae)绿盘:\nCI 修复 b673ff8 改动了双端 security.http.test.ts 与 scripts/check-runtime-acceptance.mjs\n——被测代码与测试运行器都变了,旧 runtime 证据随即失效。已把这条判据写进 CLAUDE.md:\n凡 apps/*/test、packages/contracts/src、apps/*/src、prisma 或验收 runner 自身发生改动,\n对应等级的证据一律作废重跑,不得沿用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b33f650552dbc4adad6df5ee670b6d9eba8eb125","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:35:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"5acf36269dc9ac57017fb9d77c43ac28fca73395","message":"feat(ops): 容器化全栈——三份应用 Dockerfile + compose 编排,G20 部分推进\n\nG20 此前记为\"生产运维平面为空:无应用 Dockerfile / 生产 compose 或编排\"。\n本次把容器化这一段做实并实测跑通,其余运维项仍 OPEN。\n\n新增\n- docker/Dockerfile.api-{fastify,nestjs} / .web:node:20-slim + openssl 基座\n (Prisma engine 在 musl 上需另一套二进制目标,alpine 极易出现\"本机能跑、容器里\n engine 找不到\");多阶段构建,依赖层只拷 manifest 以命中缓存\n- compose.yml:PG/Redis + 双后端各自的迁移 job + 双后端 + 前端;\n healthcheck 打 /api/health(真探 DB+Redis,非探活);端口用 +100 段,\n 可与本机 dev 栈同时运行\n- .dockerignore:仓库 1.7G 中 node_modules 占 1.5G,不排除会撑爆构建上下文;\n 宿主机依赖含平台相关二进制,拷进 linux 镜像必然是错的\n\n两个构建期参数(写错不报错、只静默坏掉,已写进 Dockerfile 顶部)\n- API_PROXY_TARGET:next rewrites 在 next build 时序列化进 routes-manifest,\n 是构建参数不是运行时变量;取值走 compose 内网服务名\n- NEXT_PUBLIC_WS_URL:NEXT_PUBLIC_* 构建期内联进客户端 bundle,而 WebSocket 由\n 浏览器直连(rewrites 只代理 /api 与 /sse),取值必须是宿主机可达地址\n 两者取值域相反,搞混的症状是\"页面能开、实时永远未连接\"\n\n迁移刻意拆成两个 job 不合并:双后端各有自己的 prisma/migrations,\"跑一个等于跑两个\"\n是 check:schema / check:migrations 保证的结论,不是编排可以预设的前提。\n实测 migrate-nestjs 独立复核报\"6 个迁移、无待应用\",一致性是被验证而非被假设的。\n\n本地实测证据\n- 五服务全部 healthy;双端容器内 /api/health 均 database/redis: up\n- 租户边界在容器栈同样生效:带租户 200 / 不带 400\n- 浏览器写入后 user.created 经 outbox→Redis→WS 落到 EventFeed(含 tenantId/eventId)\n- web 容器 /api/health 返回 service: fastify,证明内网代理参数正确\n- 容器栈与本机 dev 栈同时运行、数据互不可见\n\n仍 OPEN(CLAUDE.md G20 已按实分栏,不得据此宣称可上生产)\n镜像各约 2.1GB 未裁剪(pnpm 符号链接虚拟 store 与 node_modules/.prisma 耦合,\nprod-only 裁剪易做出\"能构建但运行时缺 engine\"的镜像,首版优先保证真能跑);\n安全模式仍 demo 且 DB 口令明文;无灰度回滚 Runbook / OTel / 限流熔断 / 审计日志 /\n备份恢复演练 / SLO 告警 / 镜像仓库与版本策略;未在任何非本机环境部署过。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/5acf36269dc9ac57017fb9d77c43ac28fca73395","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:31:42-07:00","added":[".dockerignore","compose.yml","docker/Dockerfile.api-fastify","docker/Dockerfile.api-nestjs","docker/Dockerfile.web"],"removed":[],"modified":["CLAUDE.md"]},{"id":"b0b189c813b46ab3b6903cc4a13cd1ce1ad34d81","message":"fix(dev): launch.json 指向本仓专属库,并补齐 demo 模式与 worker 开关\n\n启动本地开发栈时发现三处会让人\"跑起来了但其实是坏的\"的问题:\n\n1. DATABASE_URL 原先指向 base_framework_dev——实测该库里同时装着另一个项目的\n 8 个迁移(material_factory / brand_kit_profile / voiceprint_tasks / voice_cloning 等),\n 且缺本仓最新的 20260817090000_add_crew_engagement。按原配置启动会把本仓迁移\n 打进别的项目的库,正是 CLAUDE.md G15 记录的\"本机 PG:55432 被多项目共用\"事故模式。\n 改为本仓专属库 base_framework_haimate_dev(已建库并应用 6 个迁移),\n 对 base_framework_dev 未执行任何写操作。\n\n2. 缺 HAIMATE_SECURITY_MODE=demo——非测试环境默认 signed,缺 JWT 配置时 fail closed,\n 不显式开 demo 则本地所有请求 401(ADR-0011)。\n\n3. 缺 PLATFORM_WORKERS_ENABLED=1——不开则 KB 投影 / Trust 投影 / 审批过期等 worker\n 不运行,页面看起来能用但异步链路是死的。\n\n顺带记录一处认知缺口:G15 的机器防线只装在验收链上(check:runtime / check:ui 强制\n显式 URL + 库名前缀守卫),而开发启动路径没有守卫——launch.json 是手写配置,没人检查\n它指向哪。于是\"验收比开发更安全\",而开发才是每天都在跑的那条路径。已在文件内写明原因,\n机器化守卫列为后续项。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b0b189c813b46ab3b6903cc4a13cd1ce1ad34d81","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:31:16-07:00","added":[],"removed":[],"modified":[".claude/launch.json"]}],"total_commits":0,"head_commit":{"id":"b33f650552dbc4adad6df5ee670b6d9eba8eb125","message":"chore(reports): 刷新治理证据,绑定提交 5acf362——容器化落地后三级重跑\n\n三份报告 provenance 均为 gitSha=5acf362 + worktreeDirty=false。\n\n- 静态 pnpm check 00:32Z 16 道门禁 + 棘轮 + lint + typecheck 全绿\n- 真实 DB check:runtime 00:33Z status=passed, 380 tests / 0 failures (floor 380)\n- 浏览器 check:ui 00:34Z status=passed, 14 用例 / 0 unexpected (floor 14)\n\n本轮为什么必须重跑而不能沿用上一份(fe9a6ae)绿盘:\nCI 修复 b673ff8 改动了双端 security.http.test.ts 与 scripts/check-runtime-acceptance.mjs\n——被测代码与测试运行器都变了,旧 runtime 证据随即失效。已把这条判据写进 CLAUDE.md:\n凡 apps/*/test、packages/contracts/src、apps/*/src、prisma 或验收 runner 自身发生改动,\n对应等级的证据一律作废重跑,不得沿用。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b33f650552dbc4adad6df5ee670b6d9eba8eb125","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:35:11-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":74,"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":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5719,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T08:02:54+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
|
5
|
1787013327
|
1787013419
|
0
|
1787013326
|
1787013419
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23510
|
merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次...
|
76
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
55b9c2a0af78b6998bac3614dedc7187e37057ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c0ed7540c137f2a6828d24503a4c396156996f33","after":"55b9c2a0af78b6998bac3614dedc7187e37057ea","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/c0ed7540c137f2a6828d24503a4c396156996f33...55b9c2a0af78b6998bac3614dedc7187e37057ea","commits":[{"id":"55b9c2a0af78b6998bac3614dedc7187e37057ea","message":"merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次\n\n冲突决议(24 文件):\n- reports/baseline:取本地 08-22 棘轮(458 tests / 66 files / 456 cases / 19×2 UI,为远端严格超集)\n- jobs.processor / work.module / queue.ts(fastify):取本地 C26 JobIntent 同事务链(远端 commit 后 queue.add + defaultJobOptions 兜底已被结构性取代;嫁接远端 Redis db NaN 守卫到 Fastify 侧保持双后端对等)\n- roles.service ×2:取本地 C42 审计事务版 + 嫁接远端 RoleAssignmentDto 返回类型接线(PR #3 拍板资产)\n- page.tsx:取本地 C53 会话身份(auth-identity testid,Playwright 依赖)\n- check-ui-acceptance:本地 OIDC 编排 + 远端 F8 注释并集\n- CLAUDE.md:本地 C45–C68 动态区为基底,嫁接远端 F8 行、五层 CI 假红叙事、结果裁决角色闸(G8 ⑫)、own-tests git-tracked 口径注记,快照更新为两远端对齐 c0ed754(run 32380591807 绿)\n\n编号撞号收口:两条时间线独立分配了 C25/C26/C1——远端线三个战役重编号为 C69(runner 自含 contracts 构建 + F8)/ C70(地板采集只认 git 已跟踪)/ C71(队列双注册策略显式化),经验库标题、脚本注释、测试注释同步改引;本地 C25(迟到成功)/C26(JobIntent)/C1(check-naming)编号不变。\n\n合并树证据:静态 pnpm check 全绿(Node 22,本地 dirty 工作区 2026-08-22);双后端 UI 聚合 38/38 绿(伙伴会话实跑,指纹绑定本合并内容)。合并提交自身的远端 CI 以 headSha 定位的 run 为准。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/55b9c2a0af78b6998bac3614dedc7187e37057ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:10:56-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/store/useAppStore.ts","docs/README.md","docs/adr/README.md","docs/governance-experience.md","docs/migration-playbook.md","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/learning.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/tenant.ts","packages/contracts/tsconfig.json","scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"f79d0b0b172086ad5ae0954bd2f27a4e640398a1","message":"feat(security)+feat(ops)+feat(mobile): 生产安全与运维深水区大波次——权限/OIDC/RLS/凭据隔离/追踪/韧性/容量/移动端双平台\n\n- 权限与身份:C52 PermissionAssignment 细粒度权限(ALLOW/DENY 覆盖 + 迁移 CHECK)+ C53 Web OIDC PKCE 真实登录态(mock IdP + BFF code exchange + 会话复核)+ C51 生产启动 fail-closed(check:auth-startup)\n- 数据库纵深:C54 22 租户表 FORCE RLS 双策略与 ALS Prisma bridge + C55/C56 migration/API/dispatcher 三凭据分离、独立 dispatcher 入口(check:db-credentials / check:rls)\n- 可观测与韧性:C57 OTLP/W3C 四进程分布式追踪(packages/observability tracing + otel-collector/tempo 参考编排)+ C58/C63/C64/C65 依赖断链/半开黑洞/超时延迟/池饱和 14 fault 恢复(check:dependency-resilience)\n- 容量包络:C61 双 API 真实依赖探测 480 次(check:capacity)+ C66 双后端业务写链 40 主链持久积压无损排空(check:write-capacity)\n- 多实例与 Redis:C49 四 OS 进程真实竞争领取(check:multi-instance)+ C50 requirepass/非零 DB live 认证链(check:redis-auth)\n- 数字员工体验:C46 Actor 入职状态机与六步配置 + C45 health 单源 + C47 SSE 浏览器验收 + 工作台响应式设计收口(design-qa 验收记录 + PageMetricStrip + 头像资产)\n- 移动端:C59/C60 Capacitor 8 Android/iOS 双平台受版本控制工程 + 静态导出 runner(check:mobile)+ Android debug APK/emulator 验收 + 移动 runbook\n- 治理回灌:CLAUDE.md/AGENTS.md 动态区 C45–C67 战役索引、baseline 棘轮(458 tests / 127 行为对比点 / 19×2 UI 用例)、全量 reports 证据刷新\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f79d0b0b172086ad5ae0954bd2f27a4e640398a1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T07:42:56-07:00","added":["apps/api-fastify/prisma/migrations/20260826000000_actor_lifecycle/migration.sql","apps/api-fastify/prisma/migrations/20260827000000_permission_assignments/migration.sql","apps/api-fastify/prisma/migrations/20260828000000_tenant_rls/migration.sql","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/modules/permissions.service.ts","apps/api-fastify/src/plugins/rls-context.ts","apps/api-fastify/src/plugins/rls-prisma.ts","apps/api-fastify/src/routes/permissions.ts","apps/api-fastify/test/auth.permissions.acceptance.test.ts","apps/api-fastify/test/rls.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260826000000_actor_lifecycle/migration.sql","apps/api-nestjs/prisma/migrations/20260827000000_permission_assignments/migration.sql","apps/api-nestjs/prisma/migrations/20260828000000_tenant_rls/migration.sql","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/permissions/permissions.controller.ts","apps/api-nestjs/src/permissions/permissions.module.ts","apps/api-nestjs/src/permissions/permissions.service.ts","apps/api-nestjs/src/prisma/rls-context.ts","apps/api-nestjs/src/prisma/rls-prisma.ts","apps/api-nestjs/test/auth.permissions.acceptance.test.ts","apps/api-nestjs/test/rls.acceptance.test.ts","apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/debug/AndroidManifest.xml","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/highpraise/digitalemployeeos/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/ios/.gitignore","apps/web/ios/App/App.xcodeproj/project.pbxproj","apps/web/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","apps/web/ios/App/App/AppDelegate.swift","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","apps/web/ios/App/App/Base.lproj/LaunchScreen.storyboard","apps/web/ios/App/App/Base.lproj/Main.storyboard","apps/web/ios/App/App/Info.plist","apps/web/ios/App/CapApp-SPM/.gitignore","apps/web/ios/App/CapApp-SPM/Package.swift","apps/web/ios/App/CapApp-SPM/README.md","apps/web/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift","apps/web/ios/debug.xcconfig","apps/web/public/assets/digital-employees/operations-specialist.png","apps/web/src/app/api/auth/config/route.ts","apps/web/src/app/api/auth/exchange/route.ts","apps/web/src/components/workbench/PageMetricStrip.tsx","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actor-mutations.ts","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/auth/api/auth-api.ts","apps/web/src/features/auth/components/AuthGate.tsx","apps/web/src/features/auth/lib/oidc.ts","apps/web/src/features/permissions/api/permissions-api.ts","apps/web/src/features/permissions/components/PermissionAssignmentsPanel.tsx","apps/web/src/features/permissions/hooks/use-permissions.ts","apps/web/src/store/useAuthStore.ts","deploy/production/otel-collector.yml","deploy/production/tempo.yml","design-qa.md","docs/operations/mobile-android-runbook.md","packages/contracts/src/actor.test.ts","packages/contracts/src/health.test.ts","packages/contracts/src/health.ts","packages/contracts/src/rls.test.ts","packages/contracts/src/rls.ts","packages/observability/src/http-route.ts","packages/observability/src/tracing.test.ts","packages/observability/src/tracing.ts","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/mobile-android.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/redis-auth-live.latest.json","reports/rls.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/write-capacity.latest.json","scripts/build-mobile-export.mjs","scripts/check-auth-startup.mjs","scripts/check-capacity-envelope.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dependency-resilience.mjs","scripts/check-mobile-export.mjs","scripts/check-multi-instance.mjs","scripts/check-redis-auth-live.mjs","scripts/check-rls.mjs","scripts/check-trace-backend.mjs","scripts/check-tracing.mjs","scripts/check-write-capacity.mjs","scripts/lib/db-runtime-role.mjs","scripts/mock-oidc-idp.mjs","scripts/provision-runtime-role.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/actors.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/src/plugins/operations.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/prisma.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/trigger-engine.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/scripts/behavior-parity-snapshot.mjs","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.service.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/operations/operations.module.ts","apps/api-nestjs/src/prisma/prisma.service.ts","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/src/queue/jobs.controller.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.module.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/page.tsx","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","apps/web/src/store/realtime.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/prometheus.yml","docs/adr/0009-dual-backend-governance-parity.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","output/pdf/任务驱动的数字员工执行闭环.pdf","package.json","packages/contracts/src/actor.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/realtime.ts","packages/contracts/src/tenant.ts","packages/contracts/src/user.ts","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-operations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/scan-ignore.mjs","tmp/pdfs/generate_task_loop_pdf.py"]},{"id":"4f2e17b9c3aa4745c5acebadabdd979e0a7ee7f4","message":"Harden governance runtime and acceptance coverage\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/4f2e17b9c3aa4745c5acebadabdd979e0a7ee7f4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-21T08:36:22-07:00","added":[".dockerignore","apps/api-fastify/prisma/migrations/20260825030000_skill_activation/migration.sql","apps/api-fastify/src/plugins/operations.ts","apps/api-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","apps/api-nestjs/scripts/behavior-parity-snapshot.mjs","apps/api-nestjs/src/common/api-http-exception.filter.ts","apps/api-nestjs/src/operations/operations.module.ts","apps/web/src/features/skills/api/skills-api.ts","apps/web/src/features/skills/components/SkillManagementPanel.tsx","apps/web/src/features/skills/hooks/use-skills.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alertmanager.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/nginx.conf.template","deploy/production/prometheus.yml","docs/operations/production-runbook.md","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","packages/observability/tsconfig.json","packages/skill-runtime/package.json","packages/skill-runtime/src/implementations/analysis-v1.ts","packages/skill-runtime/src/implementations/customer-research-v1.ts","packages/skill-runtime/src/implementations/knowledge-synthesis-v1-1.ts","packages/skill-runtime/src/implementations/knowledge-synthesis-v1-2.ts","packages/skill-runtime/src/implementations/reporting-v1.ts","packages/skill-runtime/src/implementations/reporting-v2.ts","packages/skill-runtime/src/index.test.ts","packages/skill-runtime/src/index.ts","packages/skill-runtime/src/prompt.ts","packages/skill-runtime/src/types.ts","packages/skill-runtime/tsconfig.json","reports/dual-backend-behavior.latest.json","reports/operations.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","scripts/check-dual-backend-behavior.mjs","scripts/check-operations.mjs","scripts/check-ui-all.mjs","scripts/ops/backup.sh","scripts/ops/paging-relay.mjs","scripts/ops/restore.sh","scripts/replay-dead-letter.mjs","tmp/deploy-probe-nestjs/.env.example","tmp/deploy-probe-nestjs/docker-compose.yml","tmp/deploy-probe-nestjs/nest-cli.json","tmp/deploy-probe-nestjs/package.json","tmp/deploy-probe-nestjs/prisma/migrations/20260818000000_init/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260819000000_outbox_replay_cursor/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260820000000_work_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260821000000_learning_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260822000000_trigger_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260823000000_outcome_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260824000000_attribution_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825000000_role_assignment/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825010000_workgraph_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/migration_lock.toml","tmp/deploy-probe-nestjs/prisma/schema.prisma","tmp/deploy-probe-nestjs/prisma/seed.ts","tmp/deploy-probe-nestjs/scripts/behavior-parity-snapshot.mjs","tmp/deploy-probe-nestjs/src/actors/actor-events.service.ts","tmp/deploy-probe-nestjs/src/actors/actors.controller.ts","tmp/deploy-probe-nestjs/src/actors/actors.module.ts","tmp/deploy-probe-nestjs/src/actors/actors.service.ts","tmp/deploy-probe-nestjs/src/app.module.ts","tmp/deploy-probe-nestjs/src/common/api-http-exception.filter.ts","tmp/deploy-probe-nestjs/src/common/envelope.ts","tmp/deploy-probe-nestjs/src/common/tenant.decorator.ts","tmp/deploy-probe-nestjs/src/common/zod-validation.pipe.ts","tmp/deploy-probe-nestjs/src/create-app.ts","tmp/deploy-probe-nestjs/src/events/connection-registry.service.ts","tmp/deploy-probe-nestjs/src/events/event-bus.service.ts","tmp/deploy-probe-nestjs/src/events/events.gateway.ts","tmp/deploy-probe-nestjs/src/events/events.module.ts","tmp/deploy-probe-nestjs/src/events/fanout.service.ts","tmp/deploy-probe-nestjs/src/events/outbox-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/events/realtime-stats.controller.ts","tmp/deploy-probe-nestjs/src/events/replay.service.ts","tmp/deploy-probe-nestjs/src/health/health.controller.ts","tmp/deploy-probe-nestjs/src/health/health.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.service.ts","tmp/deploy-probe-nestjs/src/main.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.controller.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.module.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.service.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.module.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.service.ts","tmp/deploy-probe-nestjs/src/queue/job-intent-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/queue/jobs.controller.ts","tmp/deploy-probe-nestjs/src/queue/jobs.processor.ts","tmp/deploy-probe-nestjs/src/queue/queue.module.ts","tmp/deploy-probe-nestjs/src/queue/queue.types.ts","tmp/deploy-probe-nestjs/src/redis/redis.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.controller.ts","tmp/deploy-probe-nestjs/src/roles/roles.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.service.ts","tmp/deploy-probe-nestjs/src/sse/sse.controller.ts","tmp/deploy-probe-nestjs/src/sse/sse.module.ts","tmp/deploy-probe-nestjs/src/statemachine/index.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.engine.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.types.ts","tmp/deploy-probe-nestjs/src/triggers/trigger-engine.service.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.controller.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.module.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.service.ts","tmp/deploy-probe-nestjs/src/users/users.controller.ts","tmp/deploy-probe-nestjs/src/users/users.module.ts","tmp/deploy-probe-nestjs/src/users/users.service.ts","tmp/deploy-probe-nestjs/src/work/grants.service.ts","tmp/deploy-probe-nestjs/src/work/projects.controller.ts","tmp/deploy-probe-nestjs/src/work/projects.service.ts","tmp/deploy-probe-nestjs/src/work/runtimes.service.ts","tmp/deploy-probe-nestjs/src/work/skills.controller.ts","tmp/deploy-probe-nestjs/src/work/skills.service.ts","tmp/deploy-probe-nestjs/src/work/task-events.service.ts","tmp/deploy-probe-nestjs/src/work/tasks.controller.ts","tmp/deploy-probe-nestjs/src/work/tasks.service.ts","tmp/deploy-probe-nestjs/src/work/work.module.ts","tmp/deploy-probe-nestjs/test/actor-events.integration.test.ts","tmp/deploy-probe-nestjs/test/auth.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.jwks.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.roles.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.rs256.acceptance.test.ts","tmp/deploy-probe-nestjs/test/dead-letters.integration.test.ts","tmp/deploy-probe-nestjs/test/http.acceptance.test.ts","tmp/deploy-probe-nestjs/test/job-intent.dispatcher.test.ts","tmp/deploy-probe-nestjs/test/learning.concurrency.test.ts","tmp/deploy-probe-nestjs/test/llm.acceptance.test.ts","tmp/deploy-probe-nestjs/test/llm.anthropic.acceptance.test.ts","tmp/deploy-probe-nestjs/test/outbox.concurrency.test.ts","tmp/deploy-probe-nestjs/test/outbox.deadletter.test.ts","tmp/deploy-probe-nestjs/test/outcomes.integration.test.ts","tmp/deploy-probe-nestjs/test/realtime.command.test.ts","tmp/deploy-probe-nestjs/test/realtime.replay.test.ts","tmp/deploy-probe-nestjs/test/realtime.stats.test.ts","tmp/deploy-probe-nestjs/test/realtime.subscription.test.ts","tmp/deploy-probe-nestjs/test/realtime.tenant.test.ts","tmp/deploy-probe-nestjs/test/task-events.integration.test.ts","tmp/deploy-probe-nestjs/test/triggers.integration.test.ts","tmp/deploy-probe-nestjs/test/work.integration.test.ts","tmp/deploy-probe-nestjs/tsconfig.build.json","tmp/deploy-probe-nestjs/tsconfig.json","tmp/deploy-probe-nestjs/vitest.config.ts","tmp/ops-config/.env.production","tmp/ops-config/metrics-token.txt","tmp/pdfs/generate_task_loop_pdf.py","tmp/pdfs/task-loop-qa-v2/page-01.png","tmp/pdfs/task-loop-qa-v2/page-02.png","tmp/pdfs/task-loop-qa-v2/page-03.png","tmp/pdfs/task-loop-qa-v2/page-04.png","tmp/pdfs/task-loop-qa-v2/page-05.png","tmp/pdfs/task-loop-qa-v2/page-06.png","tmp/pdfs/task-loop-qa-v2/page-07.png","tmp/pdfs/task-loop-qa-v2/page-08.png","tmp/pdfs/task-loop-qa-v2/page-09.png","tmp/pdfs/task-loop-qa-v2/page-10.png","tmp/pdfs/task-loop-qa-v2/page-11.png","tmp/pdfs/task-loop-qa-v2/page-12.png","tmp/pdfs/task-loop-qa-v2/page-13.png","tmp/pdfs/task-loop-qa-v2/page-14.png","tmp/pdfs/task-loop-qa-v2/page-15.png","tmp/pdfs/task-loop-qa-v3/contact-sheet.png","tmp/pdfs/task-loop-qa-v3/delivery-01.png","tmp/pdfs/task-loop-qa-v3/delivery-02.png","tmp/pdfs/task-loop-qa-v3/delivery-03.png","tmp/pdfs/task-loop-qa-v3/delivery-04.png","tmp/pdfs/task-loop-qa-v3/delivery-05.png","tmp/pdfs/task-loop-qa-v3/delivery-06.png","tmp/pdfs/task-loop-qa-v3/delivery-07.png","tmp/pdfs/task-loop-qa-v3/delivery-08.png","tmp/pdfs/task-loop-qa-v3/delivery-09.png","tmp/pdfs/task-loop-qa-v3/delivery-10.png","tmp/pdfs/task-loop-qa-v3/delivery-11.png","tmp/pdfs/task-loop-qa-v3/delivery-12.png","tmp/pdfs/task-loop-qa-v3/delivery-13.png","tmp/pdfs/task-loop-qa-v3/delivery-14.png","tmp/pdfs/task-loop-qa-v3/delivery-15.png","tmp/pdfs/task-loop-qa-v3/delivery-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-01.png","tmp/pdfs/task-loop-qa-v3/final-02.png","tmp/pdfs/task-loop-qa-v3/final-03.png","tmp/pdfs/task-loop-qa-v3/final-04.png","tmp/pdfs/task-loop-qa-v3/final-05.png","tmp/pdfs/task-loop-qa-v3/final-06.png","tmp/pdfs/task-loop-qa-v3/final-07.png","tmp/pdfs/task-loop-qa-v3/final-08.png","tmp/pdfs/task-loop-qa-v3/final-09.png","tmp/pdfs/task-loop-qa-v3/final-10.png","tmp/pdfs/task-loop-qa-v3/final-11.png","tmp/pdfs/task-loop-qa-v3/final-12.png","tmp/pdfs/task-loop-qa-v3/final-13.png","tmp/pdfs/task-loop-qa-v3/final-14.png","tmp/pdfs/task-loop-qa-v3/final-15.png","tmp/pdfs/task-loop-qa-v3/final-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-page-13.png","tmp/pdfs/task-loop-qa-v3/page-01.png","tmp/pdfs/task-loop-qa-v3/page-02.png","tmp/pdfs/task-loop-qa-v3/page-03.png","tmp/pdfs/task-loop-qa-v3/page-04.png","tmp/pdfs/task-loop-qa-v3/page-05.png","tmp/pdfs/task-loop-qa-v3/page-06.png","tmp/pdfs/task-loop-qa-v3/page-07.png","tmp/pdfs/task-loop-qa-v3/page-08.png","tmp/pdfs/task-loop-qa-v3/page-09.png","tmp/pdfs/task-loop-qa-v3/page-10.png","tmp/pdfs/task-loop-qa-v3/page-11.png","tmp/pdfs/task-loop-qa-v3/page-12.png","tmp/pdfs/task-loop-qa-v3/page-13.png","tmp/pdfs/task-loop-qa-v3/page-14.png","tmp/pdfs/task-loop-qa-v3/page-15.png","tmp/pdfs/task-loop-qa/page-01.png","tmp/pdfs/task-loop-qa/page-02.png","tmp/pdfs/task-loop-qa/page-03.png","tmp/pdfs/task-loop-qa/page-04.png","tmp/pdfs/task-loop-qa/page-05.png","tmp/pdfs/task-loop-qa/page-06.png","tmp/pdfs/task-loop-qa/page-07.png","tmp/pdfs/task-loop-qa/page-08.png","tmp/pdfs/task-loop-qa/page-09.png","tmp/pdfs/task-loop-qa/page-10.png","tmp/pdfs/task-loop-qa/page-11.png","tmp/pdfs/task-loop-qa/page-12.png","tmp/pdfs/task-loop-qa/page-13.png"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/skills.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/plugins/trigger-engine.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/roles.ts","apps/api-fastify/src/routes/skills.ts","apps/api-fastify/src/server.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/dead-letters.integration.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/events.module.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/roles/roles.controller.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/skills.controller.ts","apps/api-nestjs/src/work/skills.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/dead-letters.integration.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","docs/adr/0009-dual-backend-governance-parity.md","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","governance.registry.schema.json","output/pdf/任务驱动的数字员工执行闭环.pdf","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/learning.test.ts","packages/contracts/src/learning.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/skill.test.ts","packages/contracts/src/skill.ts","packages/contracts/src/tenant.ts","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"f6ea2efbccafe9df16c29fd2f3ee80cedd159338","message":"feat: 完善可靠作业交接与产品手册\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/f6ea2efbccafe9df16c29fd2f3ee80cedd159338","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T06:47:23-07:00","added":["apps/api-fastify/prisma/migrations/20260825020000_job_intent/migration.sql","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","output/pdf/任务驱动的数字员工执行闭环.pdf","outputs/Digital_Employee_OS_产品使用手册_V1.0.docx","outputs/Digital_Employee_OS_产品说明书_V1.0.docx","work/product-manual/build_user_manual.py","work/product-manual/render-final/page-1.png","work/product-manual/render-final/page-10.png","work/product-manual/render-final/page-11.png","work/product-manual/render-final/page-12.png","work/product-manual/render-final/page-13.png","work/product-manual/render-final/page-14.png","work/product-manual/render-final/page-15.png","work/product-manual/render-final/page-16.png","work/product-manual/render-final/page-17.png","work/product-manual/render-final/page-18.png","work/product-manual/render-final/page-19.png","work/product-manual/render-final/page-2.png","work/product-manual/render-final/page-20.png","work/product-manual/render-final/page-21.png","work/product-manual/render-final/page-22.png","work/product-manual/render-final/page-23.png","work/product-manual/render-final/page-24.png","work/product-manual/render-final/page-25.png","work/product-manual/render-final/page-26.png","work/product-manual/render-final/page-3.png","work/product-manual/render-final/page-4.png","work/product-manual/render-final/page-5.png","work/product-manual/render-final/page-6.png","work/product-manual/render-final/page-7.png","work/product-manual/render-final/page-8.png","work/product-manual/render-final/page-9.png","work/product-manual/render-v1/Digital_Employee_OS_产品使用手册_V1.0.pdf","work/product-manual/render-v1/page-1.png","work/product-manual/render-v1/page-10.png","work/product-manual/render-v1/page-11.png","work/product-manual/render-v1/page-12.png","work/product-manual/render-v1/page-13.png","work/product-manual/render-v1/page-14.png","work/product-manual/render-v1/page-15.png","work/product-manual/render-v1/page-16.png","work/product-manual/render-v1/page-17.png","work/product-manual/render-v1/page-18.png","work/product-manual/render-v1/page-19.png","work/product-manual/render-v1/page-2.png","work/product-manual/render-v1/page-20.png","work/product-manual/render-v1/page-21.png","work/product-manual/render-v1/page-22.png","work/product-manual/render-v1/page-23.png","work/product-manual/render-v1/page-24.png","work/product-manual/render-v1/page-25.png","work/product-manual/render-v1/page-26.png","work/product-manual/render-v1/page-27.png","work/product-manual/render-v1/page-28.png","work/product-manual/render-v1/page-29.png","work/product-manual/render-v1/page-3.png","work/product-manual/render-v1/page-30.png","work/product-manual/render-v1/page-31.png","work/product-manual/render-v1/page-4.png","work/product-manual/render-v1/page-5.png","work/product-manual/render-v1/page-6.png","work/product-manual/render-v1/page-7.png","work/product-manual/render-v1/page-8.png","work/product-manual/render-v1/page-9.png","work/product-manual/render-v2/Digital_Employee_OS_产品使用手册_V1.0.pdf","work/product-manual/render-v2/page-1.png","work/product-manual/render-v2/page-10.png","work/product-manual/render-v2/page-11.png","work/product-manual/render-v2/page-12.png","work/product-manual/render-v2/page-13.png","work/product-manual/render-v2/page-14.png","work/product-manual/render-v2/page-15.png","work/product-manual/render-v2/page-16.png","work/product-manual/render-v2/page-17.png","work/product-manual/render-v2/page-18.png","work/product-manual/render-v2/page-19.png","work/product-manual/render-v2/page-2.png","work/product-manual/render-v2/page-20.png","work/product-manual/render-v2/page-21.png","work/product-manual/render-v2/page-22.png","work/product-manual/render-v2/page-23.png","work/product-manual/render-v2/page-24.png","work/product-manual/render-v2/page-25.png","work/product-manual/render-v2/page-3.png","work/product-manual/render-v2/page-4.png","work/product-manual/render-v2/page-5.png","work/product-manual/render-v2/page-6.png","work/product-manual/render-v2/page-7.png","work/product-manual/render-v2/page-8.png","work/product-manual/render-v2/page-9.png","work/product-manual/render-v3/page-1.png","work/product-manual/render-v3/page-10.png","work/product-manual/render-v3/page-11.png","work/product-manual/render-v3/page-12.png","work/product-manual/render-v3/page-13.png","work/product-manual/render-v3/page-14.png","work/product-manual/render-v3/page-15.png","work/product-manual/render-v3/page-16.png","work/product-manual/render-v3/page-17.png","work/product-manual/render-v3/page-18.png","work/product-manual/render-v3/page-19.png","work/product-manual/render-v3/page-2.png","work/product-manual/render-v3/page-20.png","work/product-manual/render-v3/page-21.png","work/product-manual/render-v3/page-22.png","work/product-manual/render-v3/page-23.png","work/product-manual/render-v3/page-24.png","work/product-manual/render-v3/page-25.png","work/product-manual/render-v3/page-26.png","work/product-manual/render-v3/page-27.png","work/product-manual/render-v3/page-28.png","work/product-manual/render-v3/page-29.png","work/product-manual/render-v3/page-3.png","work/product-manual/render-v3/page-4.png","work/product-manual/render-v3/page-5.png","work/product-manual/render-v3/page-6.png","work/product-manual/render-v3/page-7.png","work/product-manual/render-v3/page-8.png","work/product-manual/render-v3/page-9.png","work/product-manual/render-v4/page-1.png","work/product-manual/render-v4/page-10.png","work/product-manual/render-v4/page-11.png","work/product-manual/render-v4/page-12.png","work/product-manual/render-v4/page-13.png","work/product-manual/render-v4/page-14.png","work/product-manual/render-v4/page-15.png","work/product-manual/render-v4/page-16.png","work/product-manual/render-v4/page-17.png","work/product-manual/render-v4/page-18.png","work/product-manual/render-v4/page-19.png","work/product-manual/render-v4/page-2.png","work/product-manual/render-v4/page-20.png","work/product-manual/render-v4/page-21.png","work/product-manual/render-v4/page-22.png","work/product-manual/render-v4/page-23.png","work/product-manual/render-v4/page-24.png","work/product-manual/render-v4/page-25.png","work/product-manual/render-v4/page-26.png","work/product-manual/render-v4/page-27.png","work/product-manual/render-v4/page-28.png","work/product-manual/render-v4/page-3.png","work/product-manual/render-v4/page-4.png","work/product-manual/render-v4/page-5.png","work/product-manual/render-v4/page-6.png","work/product-manual/render-v4/page-7.png","work/product-manual/render-v4/page-8.png","work/product-manual/render-v4/page-9.png","work/product-manual/render-v5/page-1.png","work/product-manual/render-v5/page-10.png","work/product-manual/render-v5/page-11.png","work/product-manual/render-v5/page-12.png","work/product-manual/render-v5/page-13.png","work/product-manual/render-v5/page-14.png","work/product-manual/render-v5/page-15.png","work/product-manual/render-v5/page-16.png","work/product-manual/render-v5/page-17.png","work/product-manual/render-v5/page-18.png","work/product-manual/render-v5/page-19.png","work/product-manual/render-v5/page-2.png","work/product-manual/render-v5/page-20.png","work/product-manual/render-v5/page-21.png","work/product-manual/render-v5/page-22.png","work/product-manual/render-v5/page-23.png","work/product-manual/render-v5/page-24.png","work/product-manual/render-v5/page-25.png","work/product-manual/render-v5/page-26.png","work/product-manual/render-v5/page-3.png","work/product-manual/render-v5/page-4.png","work/product-manual/render-v5/page-5.png","work/product-manual/render-v5/page-6.png","work/product-manual/render-v5/page-7.png","work/product-manual/render-v5/page-8.png","work/product-manual/render-v5/page-9.png","work/product-manual/screenshots/01-workbench.png","work/product-manual/screenshots/02-team.png","work/product-manual/screenshots/03-automation.png","work/product-manual/screenshots/04-system.png","work/product-manual/screenshots/05-task-detail-crop.png","work/product-manual/screenshots/05-task-detail.png","work/product-manual/screenshots/06-execution-records-crop.png","work/product-manual/screenshots/06-execution-records.png","work/product-manual/screenshots/07-task-create.png","work/product-manual/screenshots/08-task-more-options.png","work/product-manual/screenshots/09-mobile-workbench.png","work/product_manual/__pycache__/build_product_manual.cpython-312.pyc","work/product_manual/build_product_manual.py","work/product_manual/figure_closed_loop.png","work/product_manual/figure_product_ia.png","work/product_manual/figure_technical_layers.png","work/product_manual/qa_v1/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v1/page-1.png","work/product_manual/qa_v1/page-10.png","work/product_manual/qa_v1/page-11.png","work/product_manual/qa_v1/page-12.png","work/product_manual/qa_v1/page-13.png","work/product_manual/qa_v1/page-14.png","work/product_manual/qa_v1/page-15.png","work/product_manual/qa_v1/page-16.png","work/product_manual/qa_v1/page-17.png","work/product_manual/qa_v1/page-18.png","work/product_manual/qa_v1/page-19.png","work/product_manual/qa_v1/page-2.png","work/product_manual/qa_v1/page-3.png","work/product_manual/qa_v1/page-4.png","work/product_manual/qa_v1/page-5.png","work/product_manual/qa_v1/page-6.png","work/product_manual/qa_v1/page-7.png","work/product_manual/qa_v1/page-8.png","work/product_manual/qa_v1/page-9.png","work/product_manual/qa_v10/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v10/page-1.png","work/product_manual/qa_v10/page-10.png","work/product_manual/qa_v10/page-11.png","work/product_manual/qa_v10/page-12.png","work/product_manual/qa_v10/page-13.png","work/product_manual/qa_v10/page-14.png","work/product_manual/qa_v10/page-15.png","work/product_manual/qa_v10/page-16.png","work/product_manual/qa_v10/page-17.png","work/product_manual/qa_v10/page-18.png","work/product_manual/qa_v10/page-19.png","work/product_manual/qa_v10/page-2.png","work/product_manual/qa_v10/page-20.png","work/product_manual/qa_v10/page-21.png","work/product_manual/qa_v10/page-22.png","work/product_manual/qa_v10/page-23.png","work/product_manual/qa_v10/page-24.png","work/product_manual/qa_v10/page-25.png","work/product_manual/qa_v10/page-26.png","work/product_manual/qa_v10/page-27.png","work/product_manual/qa_v10/page-28.png","work/product_manual/qa_v10/page-3.png","work/product_manual/qa_v10/page-4.png","work/product_manual/qa_v10/page-5.png","work/product_manual/qa_v10/page-6.png","work/product_manual/qa_v10/page-7.png","work/product_manual/qa_v10/page-8.png","work/product_manual/qa_v10/page-9.png","work/product_manual/qa_v11/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v11/a11y.json","work/product_manual/qa_v11/page-1.png","work/product_manual/qa_v11/page-10.png","work/product_manual/qa_v11/page-11.png","work/product_manual/qa_v11/page-12.png","work/product_manual/qa_v11/page-13.png","work/product_manual/qa_v11/page-14.png","work/product_manual/qa_v11/page-15.png","work/product_manual/qa_v11/page-16.png","work/product_manual/qa_v11/page-17.png","work/product_manual/qa_v11/page-18.png","work/product_manual/qa_v11/page-19.png","work/product_manual/qa_v11/page-2.png","work/product_manual/qa_v11/page-20.png","work/product_manual/qa_v11/page-21.png","work/product_manual/qa_v11/page-22.png","work/product_manual/qa_v11/page-23.png","work/product_manual/qa_v11/page-24.png","work/product_manual/qa_v11/page-25.png","work/product_manual/qa_v11/page-26.png","work/product_manual/qa_v11/page-27.png","work/product_manual/qa_v11/page-28.png","work/product_manual/qa_v11/page-29.png","work/product_manual/qa_v11/page-3.png","work/product_manual/qa_v11/page-4.png","work/product_manual/qa_v11/page-5.png","work/product_manual/qa_v11/page-6.png","work/product_manual/qa_v11/page-7.png","work/product_manual/qa_v11/page-8.png","work/product_manual/qa_v11/page-9.png","work/product_manual/qa_v11/style-lint.json","work/product_manual/qa_v2/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v2/page-1.png","work/product_manual/qa_v2/page-10.png","work/product_manual/qa_v2/page-11.png","work/product_manual/qa_v2/page-12.png","work/product_manual/qa_v2/page-13.png","work/product_manual/qa_v2/page-14.png","work/product_manual/qa_v2/page-15.png","work/product_manual/qa_v2/page-16.png","work/product_manual/qa_v2/page-17.png","work/product_manual/qa_v2/page-18.png","work/product_manual/qa_v2/page-19.png","work/product_manual/qa_v2/page-2.png","work/product_manual/qa_v2/page-3.png","work/product_manual/qa_v2/page-4.png","work/product_manual/qa_v2/page-5.png","work/product_manual/qa_v2/page-6.png","work/product_manual/qa_v2/page-7.png","work/product_manual/qa_v2/page-8.png","work/product_manual/qa_v2/page-9.png","work/product_manual/qa_v3/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v3/page-1.png","work/product_manual/qa_v3/page-10.png","work/product_manual/qa_v3/page-11.png","work/product_manual/qa_v3/page-12.png","work/product_manual/qa_v3/page-13.png","work/product_manual/qa_v3/page-14.png","work/product_manual/qa_v3/page-15.png","work/product_manual/qa_v3/page-16.png","work/product_manual/qa_v3/page-17.png","work/product_manual/qa_v3/page-18.png","work/product_manual/qa_v3/page-19.png","work/product_manual/qa_v3/page-2.png","work/product_manual/qa_v3/page-3.png","work/product_manual/qa_v3/page-4.png","work/product_manual/qa_v3/page-5.png","work/product_manual/qa_v3/page-6.png","work/product_manual/qa_v3/page-7.png","work/product_manual/qa_v3/page-8.png","work/product_manual/qa_v3/page-9.png","work/product_manual/qa_v4/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v4/page-1.png","work/product_manual/qa_v4/page-10.png","work/product_manual/qa_v4/page-11.png","work/product_manual/qa_v4/page-12.png","work/product_manual/qa_v4/page-13.png","work/product_manual/qa_v4/page-14.png","work/product_manual/qa_v4/page-15.png","work/product_manual/qa_v4/page-16.png","work/product_manual/qa_v4/page-17.png","work/product_manual/qa_v4/page-18.png","work/product_manual/qa_v4/page-19.png","work/product_manual/qa_v4/page-2.png","work/product_manual/qa_v4/page-3.png","work/product_manual/qa_v4/page-4.png","work/product_manual/qa_v4/page-5.png","work/product_manual/qa_v4/page-6.png","work/product_manual/qa_v4/page-7.png","work/product_manual/qa_v4/page-8.png","work/product_manual/qa_v4/page-9.png","work/product_manual/qa_v5/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v5/page-1.png","work/product_manual/qa_v5/page-10.png","work/product_manual/qa_v5/page-11.png","work/product_manual/qa_v5/page-12.png","work/product_manual/qa_v5/page-13.png","work/product_manual/qa_v5/page-14.png","work/product_manual/qa_v5/page-15.png","work/product_manual/qa_v5/page-16.png","work/product_manual/qa_v5/page-17.png","work/product_manual/qa_v5/page-18.png","work/product_manual/qa_v5/page-19.png","work/product_manual/qa_v5/page-2.png","work/product_manual/qa_v5/page-20.png","work/product_manual/qa_v5/page-21.png","work/product_manual/qa_v5/page-22.png","work/product_manual/qa_v5/page-23.png","work/product_manual/qa_v5/page-24.png","work/product_manual/qa_v5/page-25.png","work/product_manual/qa_v5/page-26.png","work/product_manual/qa_v5/page-27.png","work/product_manual/qa_v5/page-28.png","work/product_manual/qa_v5/page-3.png","work/product_manual/qa_v5/page-4.png","work/product_manual/qa_v5/page-5.png","work/product_manual/qa_v5/page-6.png","work/product_manual/qa_v5/page-7.png","work/product_manual/qa_v5/page-8.png","work/product_manual/qa_v5/page-9.png","work/product_manual/qa_v6/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v6/page-1.png","work/product_manual/qa_v6/page-10.png","work/product_manual/qa_v6/page-11.png","work/product_manual/qa_v6/page-12.png","work/product_manual/qa_v6/page-13.png","work/product_manual/qa_v6/page-14.png","work/product_manual/qa_v6/page-15.png","work/product_manual/qa_v6/page-16.png","work/product_manual/qa_v6/page-17.png","work/product_manual/qa_v6/page-18.png","work/product_manual/qa_v6/page-19.png","work/product_manual/qa_v6/page-2.png","work/product_manual/qa_v6/page-20.png","work/product_manual/qa_v6/page-21.png","work/product_manual/qa_v6/page-22.png","work/product_manual/qa_v6/page-23.png","work/product_manual/qa_v6/page-24.png","work/product_manual/qa_v6/page-25.png","work/product_manual/qa_v6/page-26.png","work/product_manual/qa_v6/page-27.png","work/product_manual/qa_v6/page-28.png","work/product_manual/qa_v6/page-3.png","work/product_manual/qa_v6/page-4.png","work/product_manual/qa_v6/page-5.png","work/product_manual/qa_v6/page-6.png","work/product_manual/qa_v6/page-7.png","work/product_manual/qa_v6/page-8.png","work/product_manual/qa_v6/page-9.png","work/product_manual/qa_v7/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v7/page-1.png","work/product_manual/qa_v7/page-10.png","work/product_manual/qa_v7/page-11.png","work/product_manual/qa_v7/page-12.png","work/product_manual/qa_v7/page-13.png","work/product_manual/qa_v7/page-14.png","work/product_manual/qa_v7/page-15.png","work/product_manual/qa_v7/page-16.png","work/product_manual/qa_v7/page-17.png","work/product_manual/qa_v7/page-18.png","work/product_manual/qa_v7/page-19.png","work/product_manual/qa_v7/page-2.png","work/product_manual/qa_v7/page-20.png","work/product_manual/qa_v7/page-21.png","work/product_manual/qa_v7/page-22.png","work/product_manual/qa_v7/page-23.png","work/product_manual/qa_v7/page-24.png","work/product_manual/qa_v7/page-25.png","work/product_manual/qa_v7/page-26.png","work/product_manual/qa_v7/page-27.png","work/product_manual/qa_v7/page-28.png","work/product_manual/qa_v7/page-3.png","work/product_manual/qa_v7/page-4.png","work/product_manual/qa_v7/page-5.png","work/product_manual/qa_v7/page-6.png","work/product_manual/qa_v7/page-7.png","work/product_manual/qa_v7/page-8.png","work/product_manual/qa_v7/page-9.png","work/product_manual/qa_v8/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v8/page-1.png","work/product_manual/qa_v8/page-10.png","work/product_manual/qa_v8/page-11.png","work/product_manual/qa_v8/page-12.png","work/product_manual/qa_v8/page-13.png","work/product_manual/qa_v8/page-14.png","work/product_manual/qa_v8/page-15.png","work/product_manual/qa_v8/page-16.png","work/product_manual/qa_v8/page-17.png","work/product_manual/qa_v8/page-18.png","work/product_manual/qa_v8/page-19.png","work/product_manual/qa_v8/page-2.png","work/product_manual/qa_v8/page-20.png","work/product_manual/qa_v8/page-21.png","work/product_manual/qa_v8/page-22.png","work/product_manual/qa_v8/page-23.png","work/product_manual/qa_v8/page-24.png","work/product_manual/qa_v8/page-25.png","work/product_manual/qa_v8/page-26.png","work/product_manual/qa_v8/page-27.png","work/product_manual/qa_v8/page-28.png","work/product_manual/qa_v8/page-3.png","work/product_manual/qa_v8/page-4.png","work/product_manual/qa_v8/page-5.png","work/product_manual/qa_v8/page-6.png","work/product_manual/qa_v8/page-7.png","work/product_manual/qa_v8/page-8.png","work/product_manual/qa_v8/page-9.png","work/product_manual/qa_v9/Digital_Employee_OS_产品说明书_V1.0.pdf","work/product_manual/qa_v9/page-1.png","work/product_manual/qa_v9/page-10.png","work/product_manual/qa_v9/page-11.png","work/product_manual/qa_v9/page-12.png","work/product_manual/qa_v9/page-13.png","work/product_manual/qa_v9/page-14.png","work/product_manual/qa_v9/page-15.png","work/product_manual/qa_v9/page-16.png","work/product_manual/qa_v9/page-17.png","work/product_manual/qa_v9/page-18.png","work/product_manual/qa_v9/page-19.png","work/product_manual/qa_v9/page-2.png","work/product_manual/qa_v9/page-20.png","work/product_manual/qa_v9/page-21.png","work/product_manual/qa_v9/page-22.png","work/product_manual/qa_v9/page-23.png","work/product_manual/qa_v9/page-24.png","work/product_manual/qa_v9/page-25.png","work/product_manual/qa_v9/page-26.png","work/product_manual/qa_v9/page-27.png","work/product_manual/qa_v9/page-28.png","work/product_manual/qa_v9/page-29.png","work/product_manual/qa_v9/page-3.png","work/product_manual/qa_v9/page-30.png","work/product_manual/qa_v9/page-4.png","work/product_manual/qa_v9/page-5.png","work/product_manual/qa_v9/page-6.png","work/product_manual/qa_v9/page-7.png","work/product_manual/qa_v9/page-8.png","work/product_manual/qa_v9/page-9.png","work/product_manual/render_with_cjk_font.py"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/work/runtimes.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/runtime.ts","packages/contracts/src/work.test.ts","reports/agent-adapters.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"55b9c2a0af78b6998bac3614dedc7187e37057ea","message":"merge: 汇合远端治理修复轮(PR #1/#2/#3,e4b6a5e..c0ed754)与本地 C45–C68 大波次\n\n冲突决议(24 文件):\n- reports/baseline:取本地 08-22 棘轮(458 tests / 66 files / 456 cases / 19×2 UI,为远端严格超集)\n- jobs.processor / work.module / queue.ts(fastify):取本地 C26 JobIntent 同事务链(远端 commit 后 queue.add + defaultJobOptions 兜底已被结构性取代;嫁接远端 Redis db NaN 守卫到 Fastify 侧保持双后端对等)\n- roles.service ×2:取本地 C42 审计事务版 + 嫁接远端 RoleAssignmentDto 返回类型接线(PR #3 拍板资产)\n- page.tsx:取本地 C53 会话身份(auth-identity testid,Playwright 依赖)\n- check-ui-acceptance:本地 OIDC 编排 + 远端 F8 注释并集\n- CLAUDE.md:本地 C45–C68 动态区为基底,嫁接远端 F8 行、五层 CI 假红叙事、结果裁决角色闸(G8 ⑫)、own-tests git-tracked 口径注记,快照更新为两远端对齐 c0ed754(run 32380591807 绿)\n\n编号撞号收口:两条时间线独立分配了 C25/C26/C1——远端线三个战役重编号为 C69(runner 自含 contracts 构建 + F8)/ C70(地板采集只认 git 已跟踪)/ C71(队列双注册策略显式化),经验库标题、脚本注释、测试注释同步改引;本地 C25(迟到成功)/C26(JobIntent)/C1(check-naming)编号不变。\n\n合并树证据:静态 pnpm check 全绿(Node 22,本地 dirty 工作区 2026-08-22);双后端 UI 聚合 38/38 绿(伙伴会话实跑,指纹绑定本合并内容)。合并提交自身的远端 CI 以 headSha 定位的 run 为准。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/55b9c2a0af78b6998bac3614dedc7187e37057ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:10:56-07:00","added":[],"removed":["apps/api-fastify/pnpm-lock.yaml","apps/api-nestjs/pnpm-lock.yaml","apps/web/pnpm-lock.yaml"],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/learning.service.ts","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/learning/learning.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.module.ts","apps/api-nestjs/src/roles/roles.service.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/store/useAppStore.ts","docs/README.md","docs/adr/README.md","docs/governance-experience.md","docs/migration-playbook.md","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/learning.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/tenant.ts","packages/contracts/tsconfig.json","scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":1901,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-21T23:43:19+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
|
5
|
1787411590
|
1787411987
|
0
|
1787411590
|
1787411987
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23511
|
fix(governance): mobile export runner 自含 contracts fix(governance): mobile export runner 自含 contracts 构建——C69 的 mobile 化身在首轮合并推送 CI 实锤...
|
76
|
5
|
governance.yml
|
12
|
5
|
0
|
refs/heads/main
|
28ea42cca5364bd425358f803436ae5c8f9bc687
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"55b9c2a0af78b6998bac3614dedc7187e37057ea","after":"28ea42cca5364bd425358f803436ae5c8f9bc687","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/55b9c2a0af78b6998bac3614dedc7187e37057ea...28ea42cca5364bd425358f803436ae5c8f9bc687","commits":[{"id":"28ea42cca5364bd425358f803436ae5c8f9bc687","message":"fix(governance): mobile export runner 自含 contracts 构建——C69 的 mobile 化身在首轮合并推送 CI 实锤\n\nrun 32580980619 静态 job 红判责:check-mobile-export 的正向静态导出直跑 next build,\nweb 运行时入口依赖 @repo/contracts dist;干净 checkout 无残留构建产物即秒崩\n(violations 1 / staticFiles 0 / synced 0),本机因开发期残留 dist 恒绿——与 C69\n「本机恒绿 ≠ 干净环境能跑」同构,是该教训的第三次现身(runtime → UI → mobile)。\n\n- check-mobile-export.mjs:正向导出前自含 `pnpm --filter @repo/contracts build` +\n dist/index.js 存在性断言(M9,防 tsbuildinfo 静默空转),与两验收 runner 同款\n- check-fork-readiness.mjs:F8 绊网从两 runner 扩至三 runner(含 mobile export);\n 负向已验证(拆掉 mobile 构建步 → F8 精确 1 红 → 恢复复绿)\n- CLAUDE.md/AGENTS.md:C69 行与 G14 ② 叙事回灌三 runner 口径与本次实锤\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/28ea42cca5364bd425358f803436ae5c8f9bc687","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:19:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/check-fork-readiness.mjs","scripts/check-mobile-export.mjs"]}],"total_commits":0,"head_commit":{"id":"28ea42cca5364bd425358f803436ae5c8f9bc687","message":"fix(governance): mobile export runner 自含 contracts 构建——C69 的 mobile 化身在首轮合并推送 CI 实锤\n\nrun 32580980619 静态 job 红判责:check-mobile-export 的正向静态导出直跑 next build,\nweb 运行时入口依赖 @repo/contracts dist;干净 checkout 无残留构建产物即秒崩\n(violations 1 / staticFiles 0 / synced 0),本机因开发期残留 dist 恒绿——与 C69\n「本机恒绿 ≠ 干净环境能跑」同构,是该教训的第三次现身(runtime → UI → mobile)。\n\n- check-mobile-export.mjs:正向导出前自含 `pnpm --filter @repo/contracts build` +\n dist/index.js 存在性断言(M9,防 tsbuildinfo 静默空转),与两验收 runner 同款\n- check-fork-readiness.mjs:F8 绊网从两 runner 扩至三 runner(含 mobile export);\n 负向已验证(拆掉 mobile 构建步 → F8 精确 1 红 → 恢复复绿)\n- CLAUDE.md/AGENTS.md:C69 行与 G14 ② 叙事回灌三 runner 口径与本次实锤\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/28ea42cca5364bd425358f803436ae5c8f9bc687","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-22T08:19:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","scripts/check-fork-readiness.mjs","scripts/check-mobile-export.mjs"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":51118,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-22T23:13:10+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
|
5
|
1787411988
|
1787412510
|
0
|
1787411987
|
1787412510
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23528
|
feat(governance): harden runtime workflows and sup feat(governance): harden runtime workflows and supply chain...
|
76
|
5
|
governance.yml
|
15
|
5
|
0
|
refs/heads/main
|
3cea10da5556cec346fbdecf5255ad38fc2bb92a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5cb2f1cc2f9953d47fa0bcfac541400d01603f78","after":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/5cb2f1cc2f9953d47fa0bcfac541400d01603f78...3cea10da5556cec346fbdecf5255ad38fc2bb92a","commits":[{"id":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","message":"feat(governance): harden runtime workflows and supply chain\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3cea10da5556cec346fbdecf5255ad38fc2bb92a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:17:12-07:00","added":[".github/dependabot.yml",".npmrc","apps/api-fastify/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-fastify/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-fastify/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-fastify/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-fastify/test/http-limits.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-nestjs/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-nestjs/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-nestjs/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-nestjs/test/http-limits.acceptance.test.ts","apps/web/public/favicon.svg","apps/web/src/app/error.tsx","apps/web/src/app/not-found.tsx","apps/web/src/components/workbench/QueryErrorHost.tsx","apps/web/src/features/actors/components/ActorBenchmarkPanel.tsx","apps/web/src/lib/query-errors.ts","packages/contracts/src/http.test.ts","packages/contracts/src/http.ts","packages/contracts/src/pagination.test.ts","packages/contracts/src/pagination.ts","reports/alertmanager-image.latest.json","reports/image-vulnerabilities.latest.json","reports/postgres-image.latest.json","scripts/check-alertmanager-image.mjs","scripts/check-image-vulnerabilities.mjs","scripts/check-postgres-image.mjs","scripts/lib/node-version-guard.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/actors.ts","apps/api-fastify/src/modules/llm-governance.service.ts","apps/api-fastify/src/modules/llm-invocation-ledger.ts","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/projects.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/llm-governance.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/auth.acceptance.test.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.service.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/llm-governance/llm-governance.controller.ts","apps/api-nestjs/src/llm-governance/llm-governance.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/src/queue/llm-invocation-ledger.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/src/work/projects.controller.ts","apps/api-nestjs/src/work/projects.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/auth.acceptance.test.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/src/app/layout.tsx","apps/web/src/components/kernel/KernelWorkspaceShell.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/components/workbench/useTaskActions.ts","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actor-mutations.ts","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/llm-governance/api/llm-governance-api.ts","apps/web/src/features/llm-governance/components/LlmInvocationReconciliationPanel.tsx","apps/web/src/features/llm-governance/hooks/use-llm-invocations.ts","apps/web/src/features/tools/hooks/use-tools.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alerts.test.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/nginx.conf.template","deploy/production/prometheus.yml","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","package.json","packages/contracts/package.json","packages/contracts/src/actor.test.ts","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime.ts","packages/contracts/src/task.ts","packages/contracts/src/tenant.ts","packages/contracts/src/work.test.ts","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","packages/product-runtime/src/product-sql.test.ts","packages/product-runtime/src/product-sql.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/baseline.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/redis-auth-live.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-access-audit.mjs","scripts/check-all.mjs","scripts/check-auth-startup.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-operations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-trace-backend.mjs","scripts/check-ui-all.mjs","scripts/governance-report.mjs","scripts/ops/backup.sh","scripts/ops/trace-storage-metrics.mjs"]}],"total_commits":0,"head_commit":{"id":"3cea10da5556cec346fbdecf5255ad38fc2bb92a","message":"feat(governance): harden runtime workflows and supply chain\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/3cea10da5556cec346fbdecf5255ad38fc2bb92a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:17:12-07:00","added":[".github/dependabot.yml",".npmrc","apps/api-fastify/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-fastify/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-fastify/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-fastify/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-fastify/test/http-limits.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260919000000_outbox_pending_claim_index/migration.sql","apps/api-nestjs/prisma/migrations/20260920000000_outbox_pending_claim_partial_index/migration.sql","apps/api-nestjs/prisma/migrations/20260921000000_drop_outbox_pending_claim_intermediate_index/migration.sql","apps/api-nestjs/prisma/migrations/20260922000000_outcome_attribution_relation/migration.sql","apps/api-nestjs/test/http-limits.acceptance.test.ts","apps/web/public/favicon.svg","apps/web/src/app/error.tsx","apps/web/src/app/not-found.tsx","apps/web/src/components/workbench/QueryErrorHost.tsx","apps/web/src/features/actors/components/ActorBenchmarkPanel.tsx","apps/web/src/lib/query-errors.ts","packages/contracts/src/http.test.ts","packages/contracts/src/http.ts","packages/contracts/src/pagination.test.ts","packages/contracts/src/pagination.ts","reports/alertmanager-image.latest.json","reports/image-vulnerabilities.latest.json","reports/postgres-image.latest.json","scripts/check-alertmanager-image.mjs","scripts/check-image-vulnerabilities.mjs","scripts/check-postgres-image.mjs","scripts/lib/node-version-guard.mjs"],"removed":[],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/dispatcher.ts","apps/api-fastify/src/modules/actor-events.service.ts","apps/api-fastify/src/modules/actors.ts","apps/api-fastify/src/modules/llm-governance.service.ts","apps/api-fastify/src/modules/llm-invocation-ledger.ts","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/projects.service.ts","apps/api-fastify/src/modules/work/task-events.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/plugins/job-intent-dispatcher.ts","apps/api-fastify/src/routes/actors.ts","apps/api-fastify/src/routes/llm-governance.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/auth.acceptance.test.ts","apps/api-fastify/test/job-intent.dispatcher.test.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.anthropic.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/task-events.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/actors/actor-events.service.ts","apps/api-nestjs/src/actors/actors.controller.ts","apps/api-nestjs/src/actors/actors.service.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/dispatcher.ts","apps/api-nestjs/src/llm-governance/llm-governance.controller.ts","apps/api-nestjs/src/llm-governance/llm-governance.service.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/queue/job-intent-dispatcher.service.ts","apps/api-nestjs/src/queue/llm-invocation-ledger.service.ts","apps/api-nestjs/src/users/users.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/src/work/projects.controller.ts","apps/api-nestjs/src/work/projects.service.ts","apps/api-nestjs/src/work/task-events.service.ts","apps/api-nestjs/src/work/tasks.controller.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/test/actor-events.integration.test.ts","apps/api-nestjs/test/auth.acceptance.test.ts","apps/api-nestjs/test/job-intent.dispatcher.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.anthropic.acceptance.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/task-events.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/src/app/layout.tsx","apps/web/src/components/kernel/KernelWorkspaceShell.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/components/workbench/useTaskActions.ts","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actor-mutations.ts","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/llm-governance/api/llm-governance-api.ts","apps/web/src/features/llm-governance/components/LlmInvocationReconciliationPanel.tsx","apps/web/src/features/llm-governance/hooks/use-llm-invocations.ts","apps/web/src/features/tools/hooks/use-tools.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/alerts.test.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/nginx.conf.template","deploy/production/prometheus.yml","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/product-extension-guide.md","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","package.json","packages/contracts/package.json","packages/contracts/src/actor.test.ts","packages/contracts/src/actor.ts","packages/contracts/src/index.ts","packages/contracts/src/job.ts","packages/contracts/src/llm-governance.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime.ts","packages/contracts/src/task.ts","packages/contracts/src/tenant.ts","packages/contracts/src/work.test.ts","packages/observability/package.json","packages/observability/src/index.test.ts","packages/observability/src/index.ts","packages/product-runtime/src/product-sql.test.ts","packages/product-runtime/src/product-sql.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/baseline.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/redis-auth-live.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-access-audit.mjs","scripts/check-all.mjs","scripts/check-auth-startup.mjs","scripts/check-db-credential-separation.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-operations.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-trace-backend.mjs","scripts/check-ui-all.mjs","scripts/governance-report.mjs","scripts/ops/backup.sh","scripts/ops/trace-storage-metrics.mjs"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":73053,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-25T12:21:18+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
|
52
|
1787707096
|
1787708829
|
0
|
1787707096
|
1787708829
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23531
|
docs(governance): clarify evidence baseline
|
81
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
ce807fe941d01cc4a4a399c474be857407d4aed9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"464b90ba5bf51536276468811aac396e51d66892","after":"ce807fe941d01cc4a4a399c474be857407d4aed9","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/464b90ba5bf51536276468811aac396e51d66892...ce807fe941d01cc4a4a399c474be857407d4aed9","commits":[{"id":"ce807fe941d01cc4a4a399c474be857407d4aed9","message":"docs(governance): clarify evidence baseline\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/ce807fe941d01cc4a4a399c474be857407d4aed9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:46:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},{"id":"a66ef1d2521ccf4b1c9a9c2da07eb9975ae1dc71","message":"feat(governance): enforce signed tenant auth\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/a66ef1d2521ccf4b1c9a9c2da07eb9975ae1dc71","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:46:21-07:00","added":["apps/api-fastify/src/plugins/auth.ts","apps/api-nestjs/src/common/auth.guard.ts","packages/contracts/src/auth.test.ts","packages/contracts/src/auth.ts","reports/auth-source.latest.json","scripts/check-auth-source.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/routes/service-cases.ts","apps/api-fastify/src/routes/service-operations.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/src/service-cases/service-cases.controller.ts","apps/api-nestjs/src/service-operations/service-operations.controller.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/src/lib/api.ts","artifacts/os-products/juhai-service-os-product-0.2.0.tgz","artifacts/os-products/juhai-service-os-product.lock.json","docs/governance-experience.md","os-products/juhai.service/acceptance/juhai.service.product.acceptance.acceptance.mjs","package.json","packages/contracts/package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"ce807fe941d01cc4a4a399c474be857407d4aed9","message":"docs(governance): clarify evidence baseline\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/ce807fe941d01cc4a4a399c474be857407d4aed9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T18:46:56-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1782,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-08-26T08:48:01+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
4
|
0
|
1787709129
|
0
|
1787708840
|
1787709129
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23533
|
feat(events): harden outbox delivery and map busin feat(events): harden outbox delivery and map business logic...
|
81
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
158a8d0a3ccc575be23117643ac664ec1b6f73dc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284","after":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/f7f15c92e83a6df0de98d1d5df4dfdd9b63cd284...158a8d0a3ccc575be23117643ac664ec1b6f73dc","commits":[{"id":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","message":"feat(events): harden outbox delivery and map business logic\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/158a8d0a3ccc575be23117643ac664ec1b6f73dc","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:07:32-07:00","added":["apps/api-fastify/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-nestjs/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-nestjs/test/outbox.concurrency.test.ts","docs/domain/business-logic-map.md"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/domain/owner-matrix.md","docs/governance-experience.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/realtime.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"158a8d0a3ccc575be23117643ac664ec1b6f73dc","message":"feat(events): harden outbox delivery and map business logic\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/158a8d0a3ccc575be23117643ac664ec1b6f73dc","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T19:07:32-07:00","added":["apps/api-fastify/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-nestjs/prisma/migrations/20260825190000_outbox_replay_cursor/migration.sql","apps/api-nestjs/test/outbox.concurrency.test.ts","docs/domain/business-logic-map.md"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/domain/owner-matrix.md","docs/governance-experience.md","packages/contracts/src/contracts.test.ts","packages/contracts/src/realtime.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs"]},"repository":{"id":81,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2137,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-08-26T09:52: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":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
|
1787711431
|
0
|
1787710066
|
1787711431
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23554
|
fix(governance)+fix(ci)+feat(gates): 治理体检轮 C227–C2 fix(governance)+fix(ci)+feat(gates): 治理体检轮 C227–C236 收口——CI 修红、门禁增强与全量三级门禁本地绿...
|
76
|
5
|
governance.yml
|
18
|
5
|
0
|
refs/heads/main
|
d433548ec7561644062b04334161019919ea233d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7","after":"d433548ec7561644062b04334161019919ea233d","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/fcbd389107386fa0a13d0abd3c8d7c272cc2a7f7...d433548ec7561644062b04334161019919ea233d","commits":[{"id":"d433548ec7561644062b04334161019919ea233d","message":"fix(governance)+fix(ci)+feat(gates): 治理体检轮 C227–C236 收口——CI 修红、门禁增强与全量三级门禁本地绿\n\nC227 产品验收 runner 缺 dist(run 33164556968 判责):两后端 build 前移 + A12 前置违规(负向实红)+ standalone 自含构建/:run 拆分\nC229 libssl CVE-2026-14456:RUNTIME_IMAGE 升级至含 3.5.7-1~deb13u2 的 distroless digest(升级前实查基座 dpkg)\nC230 网关限流塌缩:real_ip 信任链(默认回环)+ limit_req/conn_status 429 + O4 六断言\nC231 docs-truth 批间时序:--assert-only 复验接入 runtime 编排与 UI 聚合收尾\nC232 快照机器锚点:祖先关系 + 实测落后数离线核对(±1 自指窗,负向实红)\nC233 check:ci-gate:G14 现状机器化(当前诚实红 protected:false)+ CODEOWNERS\nC234 验收源卫生:mobile-ios 豁免绑 darwin、agedAcceptanceReports 14 天时效、untrack deploy-probe/QA v2–v10/pyc\nC236 juhai.hr 浏览器用例冻结日期时间炸弹:16 处日期改 UTC 动态锚定(两连红→trace 判责 409 RANGE_INVALID→修复后 31/31×2)\nC235 重号修正(原第二个 C216);O3/O32 断言按 C180 合并语义收敛(401=logoutSession+可见原因)\nG24 登记:无界列表清单/应用层租户配额/CLAUDE.md 瘦身/凭据轮换待办;D-3 留存草案与 target-env 13 条签收清单落盘\n\n本地证据(dirty 工作区,绑定各报告 provenance):pnpm check 24/24;check:runtime 683 tests/矩阵 204/204;check:ui 31/31×2 共 62;check:mobile 26 文件+iOS 自测 5/5\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d433548ec7561644062b04334161019919ea233d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T20:14:39-07:00","added":[".github/CODEOWNERS","deploy/production/target-env-signoff.json","docs/standards/data-retention.md","reports/ci-gate.latest.json","scripts/check-ci-gate.mjs"],"removed":["tmp/deploy-probe-nestjs/.env.example","tmp/deploy-probe-nestjs/docker-compose.yml","tmp/deploy-probe-nestjs/nest-cli.json","tmp/deploy-probe-nestjs/package.json","tmp/deploy-probe-nestjs/prisma/migrations/20260818000000_init/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260819000000_outbox_replay_cursor/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260820000000_work_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260821000000_learning_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260822000000_trigger_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260823000000_outcome_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260824000000_attribution_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825000000_role_assignment/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825010000_workgraph_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/migration_lock.toml","tmp/deploy-probe-nestjs/prisma/schema.prisma","tmp/deploy-probe-nestjs/prisma/seed.ts","tmp/deploy-probe-nestjs/scripts/behavior-parity-snapshot.mjs","tmp/deploy-probe-nestjs/src/actors/actor-events.service.ts","tmp/deploy-probe-nestjs/src/actors/actors.controller.ts","tmp/deploy-probe-nestjs/src/actors/actors.module.ts","tmp/deploy-probe-nestjs/src/actors/actors.service.ts","tmp/deploy-probe-nestjs/src/app.module.ts","tmp/deploy-probe-nestjs/src/common/api-http-exception.filter.ts","tmp/deploy-probe-nestjs/src/common/envelope.ts","tmp/deploy-probe-nestjs/src/common/tenant.decorator.ts","tmp/deploy-probe-nestjs/src/common/zod-validation.pipe.ts","tmp/deploy-probe-nestjs/src/create-app.ts","tmp/deploy-probe-nestjs/src/events/connection-registry.service.ts","tmp/deploy-probe-nestjs/src/events/event-bus.service.ts","tmp/deploy-probe-nestjs/src/events/events.gateway.ts","tmp/deploy-probe-nestjs/src/events/events.module.ts","tmp/deploy-probe-nestjs/src/events/fanout.service.ts","tmp/deploy-probe-nestjs/src/events/outbox-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/events/realtime-stats.controller.ts","tmp/deploy-probe-nestjs/src/events/replay.service.ts","tmp/deploy-probe-nestjs/src/health/health.controller.ts","tmp/deploy-probe-nestjs/src/health/health.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.service.ts","tmp/deploy-probe-nestjs/src/main.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.controller.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.module.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.service.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.module.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.service.ts","tmp/deploy-probe-nestjs/src/queue/job-intent-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/queue/jobs.controller.ts","tmp/deploy-probe-nestjs/src/queue/jobs.processor.ts","tmp/deploy-probe-nestjs/src/queue/queue.module.ts","tmp/deploy-probe-nestjs/src/queue/queue.types.ts","tmp/deploy-probe-nestjs/src/redis/redis.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.controller.ts","tmp/deploy-probe-nestjs/src/roles/roles.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.service.ts","tmp/deploy-probe-nestjs/src/sse/sse.controller.ts","tmp/deploy-probe-nestjs/src/sse/sse.module.ts","tmp/deploy-probe-nestjs/src/statemachine/index.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.engine.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.types.ts","tmp/deploy-probe-nestjs/src/triggers/trigger-engine.service.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.controller.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.module.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.service.ts","tmp/deploy-probe-nestjs/src/users/users.controller.ts","tmp/deploy-probe-nestjs/src/users/users.module.ts","tmp/deploy-probe-nestjs/src/users/users.service.ts","tmp/deploy-probe-nestjs/src/work/grants.service.ts","tmp/deploy-probe-nestjs/src/work/projects.controller.ts","tmp/deploy-probe-nestjs/src/work/projects.service.ts","tmp/deploy-probe-nestjs/src/work/runtimes.service.ts","tmp/deploy-probe-nestjs/src/work/skills.controller.ts","tmp/deploy-probe-nestjs/src/work/skills.service.ts","tmp/deploy-probe-nestjs/src/work/task-events.service.ts","tmp/deploy-probe-nestjs/src/work/tasks.controller.ts","tmp/deploy-probe-nestjs/src/work/tasks.service.ts","tmp/deploy-probe-nestjs/src/work/work.module.ts","tmp/deploy-probe-nestjs/test/actor-events.integration.test.ts","tmp/deploy-probe-nestjs/test/auth.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.jwks.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.roles.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.rs256.acceptance.test.ts","tmp/deploy-probe-nestjs/test/dead-letters.integration.test.ts","tmp/deploy-probe-nestjs/test/http.acceptance.test.ts","tmp/deploy-probe-nestjs/test/job-intent.dispatcher.test.ts","tmp/deploy-probe-nestjs/test/learning.concurrency.test.ts","tmp/deploy-probe-nestjs/test/llm.acceptance.test.ts","tmp/deploy-probe-nestjs/test/llm.anthropic.acceptance.test.ts","tmp/deploy-probe-nestjs/test/outbox.concurrency.test.ts","tmp/deploy-probe-nestjs/test/outbox.deadletter.test.ts","tmp/deploy-probe-nestjs/test/outcomes.integration.test.ts","tmp/deploy-probe-nestjs/test/realtime.command.test.ts","tmp/deploy-probe-nestjs/test/realtime.replay.test.ts","tmp/deploy-probe-nestjs/test/realtime.stats.test.ts","tmp/deploy-probe-nestjs/test/realtime.subscription.test.ts","tmp/deploy-probe-nestjs/test/realtime.tenant.test.ts","tmp/deploy-probe-nestjs/test/task-events.integration.test.ts","tmp/deploy-probe-nestjs/test/triggers.integration.test.ts","tmp/deploy-probe-nestjs/test/work.integration.test.ts","tmp/deploy-probe-nestjs/tsconfig.build.json","tmp/deploy-probe-nestjs/tsconfig.json","tmp/deploy-probe-nestjs/vitest.config.ts","tmp/pdfs/task-loop-qa-v10/page-01.png","tmp/pdfs/task-loop-qa-v10/page-02.png","tmp/pdfs/task-loop-qa-v10/page-03.png","tmp/pdfs/task-loop-qa-v10/page-04.png","tmp/pdfs/task-loop-qa-v10/page-05.png","tmp/pdfs/task-loop-qa-v10/page-06.png","tmp/pdfs/task-loop-qa-v10/page-07.png","tmp/pdfs/task-loop-qa-v10/page-08.png","tmp/pdfs/task-loop-qa-v10/page-09.png","tmp/pdfs/task-loop-qa-v10/page-10.png","tmp/pdfs/task-loop-qa-v10/page-11.png","tmp/pdfs/task-loop-qa-v10/page-12.png","tmp/pdfs/task-loop-qa-v10/page-13.png","tmp/pdfs/task-loop-qa-v10/page-14.png","tmp/pdfs/task-loop-qa-v10/page-15.png","tmp/pdfs/task-loop-qa-v2/page-01.png","tmp/pdfs/task-loop-qa-v2/page-02.png","tmp/pdfs/task-loop-qa-v2/page-03.png","tmp/pdfs/task-loop-qa-v2/page-04.png","tmp/pdfs/task-loop-qa-v2/page-05.png","tmp/pdfs/task-loop-qa-v2/page-06.png","tmp/pdfs/task-loop-qa-v2/page-07.png","tmp/pdfs/task-loop-qa-v2/page-08.png","tmp/pdfs/task-loop-qa-v2/page-09.png","tmp/pdfs/task-loop-qa-v2/page-10.png","tmp/pdfs/task-loop-qa-v2/page-11.png","tmp/pdfs/task-loop-qa-v2/page-12.png","tmp/pdfs/task-loop-qa-v2/page-13.png","tmp/pdfs/task-loop-qa-v2/page-14.png","tmp/pdfs/task-loop-qa-v2/page-15.png","tmp/pdfs/task-loop-qa-v3/contact-sheet.png","tmp/pdfs/task-loop-qa-v3/delivery-01.png","tmp/pdfs/task-loop-qa-v3/delivery-02.png","tmp/pdfs/task-loop-qa-v3/delivery-03.png","tmp/pdfs/task-loop-qa-v3/delivery-04.png","tmp/pdfs/task-loop-qa-v3/delivery-05.png","tmp/pdfs/task-loop-qa-v3/delivery-06.png","tmp/pdfs/task-loop-qa-v3/delivery-07.png","tmp/pdfs/task-loop-qa-v3/delivery-08.png","tmp/pdfs/task-loop-qa-v3/delivery-09.png","tmp/pdfs/task-loop-qa-v3/delivery-10.png","tmp/pdfs/task-loop-qa-v3/delivery-11.png","tmp/pdfs/task-loop-qa-v3/delivery-12.png","tmp/pdfs/task-loop-qa-v3/delivery-13.png","tmp/pdfs/task-loop-qa-v3/delivery-14.png","tmp/pdfs/task-loop-qa-v3/delivery-15.png","tmp/pdfs/task-loop-qa-v3/delivery-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-01.png","tmp/pdfs/task-loop-qa-v3/final-02.png","tmp/pdfs/task-loop-qa-v3/final-03.png","tmp/pdfs/task-loop-qa-v3/final-04.png","tmp/pdfs/task-loop-qa-v3/final-05.png","tmp/pdfs/task-loop-qa-v3/final-06.png","tmp/pdfs/task-loop-qa-v3/final-07.png","tmp/pdfs/task-loop-qa-v3/final-08.png","tmp/pdfs/task-loop-qa-v3/final-09.png","tmp/pdfs/task-loop-qa-v3/final-10.png","tmp/pdfs/task-loop-qa-v3/final-11.png","tmp/pdfs/task-loop-qa-v3/final-12.png","tmp/pdfs/task-loop-qa-v3/final-13.png","tmp/pdfs/task-loop-qa-v3/final-14.png","tmp/pdfs/task-loop-qa-v3/final-15.png","tmp/pdfs/task-loop-qa-v3/final-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-page-13.png","tmp/pdfs/task-loop-qa-v3/page-01.png","tmp/pdfs/task-loop-qa-v3/page-02.png","tmp/pdfs/task-loop-qa-v3/page-03.png","tmp/pdfs/task-loop-qa-v3/page-04.png","tmp/pdfs/task-loop-qa-v3/page-05.png","tmp/pdfs/task-loop-qa-v3/page-06.png","tmp/pdfs/task-loop-qa-v3/page-07.png","tmp/pdfs/task-loop-qa-v3/page-08.png","tmp/pdfs/task-loop-qa-v3/page-09.png","tmp/pdfs/task-loop-qa-v3/page-10.png","tmp/pdfs/task-loop-qa-v3/page-11.png","tmp/pdfs/task-loop-qa-v3/page-12.png","tmp/pdfs/task-loop-qa-v3/page-13.png","tmp/pdfs/task-loop-qa-v3/page-14.png","tmp/pdfs/task-loop-qa-v3/page-15.png","tmp/pdfs/task-loop-qa-v4/contact-sheet.png","tmp/pdfs/task-loop-qa-v4/page-01.png","tmp/pdfs/task-loop-qa-v4/page-02.png","tmp/pdfs/task-loop-qa-v4/page-03.png","tmp/pdfs/task-loop-qa-v4/page-04.png","tmp/pdfs/task-loop-qa-v4/page-05.png","tmp/pdfs/task-loop-qa-v4/page-06.png","tmp/pdfs/task-loop-qa-v4/page-07.png","tmp/pdfs/task-loop-qa-v4/page-08.png","tmp/pdfs/task-loop-qa-v4/page-09.png","tmp/pdfs/task-loop-qa-v4/page-10.png","tmp/pdfs/task-loop-qa-v4/page-11.png","tmp/pdfs/task-loop-qa-v4/page-12.png","tmp/pdfs/task-loop-qa-v4/page-13.png","tmp/pdfs/task-loop-qa-v4/page-14.png","tmp/pdfs/task-loop-qa-v4/page-15.png","tmp/pdfs/task-loop-qa-v5/contact-sheet.png","tmp/pdfs/task-loop-qa-v5/page-01.png","tmp/pdfs/task-loop-qa-v5/page-02.png","tmp/pdfs/task-loop-qa-v5/page-03.png","tmp/pdfs/task-loop-qa-v5/page-04.png","tmp/pdfs/task-loop-qa-v5/page-05.png","tmp/pdfs/task-loop-qa-v5/page-06.png","tmp/pdfs/task-loop-qa-v5/page-07.png","tmp/pdfs/task-loop-qa-v5/page-08.png","tmp/pdfs/task-loop-qa-v5/page-09.png","tmp/pdfs/task-loop-qa-v5/page-10.png","tmp/pdfs/task-loop-qa-v5/page-11.png","tmp/pdfs/task-loop-qa-v5/page-12.png","tmp/pdfs/task-loop-qa-v5/page-13.png","tmp/pdfs/task-loop-qa-v5/page-14.png","tmp/pdfs/task-loop-qa-v5/page-15.png","tmp/pdfs/task-loop-qa-v6/page-01.png","tmp/pdfs/task-loop-qa-v6/page-02.png","tmp/pdfs/task-loop-qa-v6/page-13.png","tmp/pdfs/task-loop-qa-v6/page-14.png","tmp/pdfs/task-loop-qa-v6/page-15.png","tmp/pdfs/task-loop-qa-v7/page-01.png","tmp/pdfs/task-loop-qa-v7/page-02.png","tmp/pdfs/task-loop-qa-v7/page-03.png","tmp/pdfs/task-loop-qa-v7/page-04.png","tmp/pdfs/task-loop-qa-v7/page-05.png","tmp/pdfs/task-loop-qa-v7/page-06.png","tmp/pdfs/task-loop-qa-v7/page-07.png","tmp/pdfs/task-loop-qa-v7/page-08.png","tmp/pdfs/task-loop-qa-v7/page-09.png","tmp/pdfs/task-loop-qa-v7/page-10.png","tmp/pdfs/task-loop-qa-v7/page-11.png","tmp/pdfs/task-loop-qa-v7/page-12.png","tmp/pdfs/task-loop-qa-v7/page-13.png","tmp/pdfs/task-loop-qa-v7/page-14.png","tmp/pdfs/task-loop-qa-v7/page-15.png","tmp/pdfs/task-loop-qa-v8/page-01.png","tmp/pdfs/task-loop-qa-v8/page-02.png","tmp/pdfs/task-loop-qa-v8/page-03.png","tmp/pdfs/task-loop-qa-v8/page-04.png","tmp/pdfs/task-loop-qa-v8/page-05.png","tmp/pdfs/task-loop-qa-v8/page-06.png","tmp/pdfs/task-loop-qa-v8/page-07.png","tmp/pdfs/task-loop-qa-v8/page-08.png","tmp/pdfs/task-loop-qa-v8/page-09.png","tmp/pdfs/task-loop-qa-v8/page-10.png","tmp/pdfs/task-loop-qa-v8/page-11.png","tmp/pdfs/task-loop-qa-v8/page-12.png","tmp/pdfs/task-loop-qa-v8/page-13.png","tmp/pdfs/task-loop-qa-v8/page-14.png","tmp/pdfs/task-loop-qa-v8/page-15.png","tmp/pdfs/task-loop-qa-v9/page-01.png","tmp/pdfs/task-loop-qa-v9/page-02.png","tmp/pdfs/task-loop-qa-v9/page-03.png","tmp/pdfs/task-loop-qa-v9/page-04.png","tmp/pdfs/task-loop-qa-v9/page-05.png","tmp/pdfs/task-loop-qa-v9/page-06.png","tmp/pdfs/task-loop-qa-v9/page-07.png","tmp/pdfs/task-loop-qa-v9/page-08.png","tmp/pdfs/task-loop-qa-v9/page-09.png","tmp/pdfs/task-loop-qa-v9/page-10.png","tmp/pdfs/task-loop-qa-v9/page-11.png","tmp/pdfs/task-loop-qa-v9/page-12.png","tmp/pdfs/task-loop-qa-v9/page-13.png","tmp/pdfs/task-loop-qa-v9/page-14.png","tmp/pdfs/task-loop-qa-v9/page-15.png","tmp/pdfs/task-loop-qa/page-01.png","tmp/pdfs/task-loop-qa/page-02.png","tmp/pdfs/task-loop-qa/page-03.png","tmp/pdfs/task-loop-qa/page-04.png","tmp/pdfs/task-loop-qa/page-05.png","tmp/pdfs/task-loop-qa/page-06.png","tmp/pdfs/task-loop-qa/page-07.png","tmp/pdfs/task-loop-qa/page-08.png","tmp/pdfs/task-loop-qa/page-09.png","tmp/pdfs/task-loop-qa/page-10.png","tmp/pdfs/task-loop-qa/page-11.png","tmp/pdfs/task-loop-qa/page-12.png","tmp/pdfs/task-loop-qa/page-13.png"],"modified":[".gitignore","CLAUDE.md","apps/web/src/lib/api.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","deploy/production/nginx.conf.template","docs/governance-experience.md","docs/operations/production-runbook.md","package.json","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-docs-truth.mjs","scripts/check-operations.mjs","scripts/check-product-acceptance-runtime.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-all.mjs","scripts/governance-report.mjs"]},{"id":"0daede71c4a95f23270c088939ea1492f33d3040","message":"merge: 汇合 GitHub main 治理大波次(32f574b, C177–C219)与本地 OIDC 修复/凭据止血线\n\n两远端自 4a222fb 分叉:GitHub 侧携带 juhai.hr HR 产品与 C177–C219 治理波次\n(供应链镜像重建/Alloy 移除/会话跨tab登出/WS-SSE exp 强断/三态查询全面收口),\n本地侧携带 cf9f65d/fcbd389 生产 OIDC 修复与 1b4bbef 凭据止血。\n冲突裁决:reports 取 GitHub 侧(阶段2全量重生成);api.ts 401 合并为\nlogoutSession()+友好错误;compose 取 GitHub 侧(Alloy 已由 C179 移除);\n.gitignore 再补 .env.production.* 派生副本与 tmp/ops-config/ 整目录。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0daede71c4a95f23270c088939ea1492f33d3040","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:59:22-07:00","added":["apps/api-fastify/prisma/migrations/20260923000000_trigger_definition_version/migration.sql","apps/api-fastify/prisma/migrations/20260924000000_outcome_remediation/migration.sql","apps/api-fastify/prisma/migrations/20260925000000_outcome_remediation_rls/migration.sql","apps/api-fastify/prisma/migrations/20260926000000_outcome_remediation_force_rls/migration.sql","apps/api-nestjs/prisma/migrations/20260923000000_trigger_definition_version/migration.sql","apps/api-nestjs/prisma/migrations/20260924000000_outcome_remediation/migration.sql","apps/api-nestjs/prisma/migrations/20260925000000_outcome_remediation_rls/migration.sql","apps/api-nestjs/prisma/migrations/20260926000000_outcome_remediation_force_rls/migration.sql","apps/web/e2e/juhai-hr.acceptance.spec.ts","apps/web/src/components/workbench/OutcomeCenter.tsx","apps/web/src/components/workbench/ProjectWorkGraph.tsx","apps/web/src/components/workbench/RuntimeContextShell.tsx","apps/web/src/features/actors/components/ActorProfileEditor.tsx","apps/web/src/features/actors/lib/actor-profile-copy.ts","apps/web/src/features/auth/lib/session-sync.ts","apps/web/src/features/projects/api/project-api.ts","apps/web/src/features/projects/hooks/use-projects.ts","apps/web/src/features/triggers/api/triggers-api.ts","apps/web/src/features/triggers/hooks/use-triggers.ts","deploy/production/otel-collector-builder.yml","docs/domain/juhai-hr-blueprint.md","products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/ddl-authority.json","products/juhai.hr/distribution.json","products/juhai.hr/host/fastify.mjs","products/juhai.hr/host/nestjs.mjs","products/juhai.hr/host/server-runtime.mjs","products/juhai.hr/host/web/app/api/auth/config/route.ts","products/juhai.hr/host/web/app/api/auth/exchange/route.ts","products/juhai.hr/host/web/app/layout.tsx","products/juhai.hr/host/web/app/page.tsx","products/juhai.hr/host/web/components/InstalledJuhaiHrWorkspace.tsx","products/juhai.hr/host/web/e2e-results.json","products/juhai.hr/host/web/features/hr/api/hr-api.ts","products/juhai.hr/host/web/features/hr/components/HrDeliveryAuditWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrMasterDataWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelChangeWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelGovernanceWorkbench.tsx","products/juhai.hr/host/web/features/hr/hooks/use-hr.ts","products/juhai.hr/host/web/next.config.ts","products/juhai.hr/host/web/package.json","products/juhai.hr/host/web/postcss.config.js","products/juhai.hr/host/web/public","products/juhai.hr/host/web/tailwind.config.ts","products/juhai.hr/host/web/tsconfig.json","products/juhai.hr/manifest.json","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/loki-image.latest.json","reports/otel-collector-image.latest.json","reports/tempo-image.latest.json","scripts/check-loki-image.mjs","scripts/check-otel-collector-image.mjs","scripts/check-tempo-image.mjs"],"removed":["deploy/production/alloy.alloy"],"modified":[".github/workflows/governance.yml",".gitignore","CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/test/auth.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/triggers/triggers.controller.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/test/auth.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/kernel/KernelWorkspaceShell.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/QueryErrorHost.tsx","apps/web/src/components/workbench/SkillPicker.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/components/workbench/ToastHost.tsx","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/ActorBenchmarkPanel.tsx","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/attachments/components/AttachmentGovernancePanel.tsx","apps/web/src/features/attachments/hooks/use-attachments.ts","apps/web/src/features/auth/components/AuthGate.tsx","apps/web/src/features/conversations/components/ConversationGovernancePanel.tsx","apps/web/src/features/conversations/hooks/use-conversations.ts","apps/web/src/features/llm-governance/components/LlmInvocationReconciliationPanel.tsx","apps/web/src/features/llm-governance/hooks/use-llm-invocations.ts","apps/web/src/features/permissions/components/PermissionAssignmentsPanel.tsx","apps/web/src/features/permissions/hooks/use-permissions.ts","apps/web/src/features/rag/components/RagGovernancePanel.tsx","apps/web/src/features/rag/hooks/use-rag.ts","apps/web/src/features/skills/components/SkillManagementPanel.tsx","apps/web/src/features/skills/hooks/use-skills.ts","apps/web/src/features/tools/components/ToolGovernancePanel.tsx","apps/web/src/features/tools/components/ToolPicker.tsx","apps/web/src/features/tools/hooks/use-tools.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","apps/web/src/store/useAuthStore.ts","deploy/production/Dockerfile","deploy/production/access-audit-alerts.test.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/otel-collector.yml","deploy/production/prometheus.yml","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/outcome-blueprint.md","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/domain/trigger-blueprint.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/product-extension-guide.md","governance.registry.json","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","kernel.products.json","kernel.products.lock.json","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/rls.test.ts","packages/contracts/src/rls.ts","packages/contracts/src/task.ts","packages/contracts/src/tenant.ts","packages/contracts/src/trigger.test.ts","packages/contracts/src/trigger.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/baseline.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-vulnerabilities.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/mobile-ios.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-access-audit.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-image-vulnerabilities.mjs","scripts/check-operations.mjs","scripts/check-trace-backend.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"1b4bbef5e9b640e9b2a99df54a246ecf7fc7c6cd","message":"fix(security): untrack 已入库运维凭据并将 O9 升级为全索引 secret 反扫\n\nC177 阶段0止血:tmp/ops-config/.env.production 与 metrics-token.txt 自 4f2e17b 起\n被 git 跟踪并已推送——C159 只补了 gitignore 模式(对已跟踪文件无效),O9 只断言\n字面路径 deploy/production/.env.production,形成假生效门禁。本提交:\n- git rm --cached 两份凭据文件与两个 __pycache__ 字节码\n- .gitignore 补 metrics-token*.txt / __pycache__/ / *.pyc\n- O9 改为双层反扫:gitignore 命中仍在索引即红 + secret 形状兜底(*.example 豁免)\n 负向测试两腿均已实红(metrics-token 双命中、probe-token 形状腿单命中)后恢复绿\n- CLAUDE.md 增补「提交上传=双推 Gitea+GitHub」会话术语约定(用户拍板)\n凭据轮换候选已生成于 tmp/ops-config/*.rotated-20260829*(不入库),由用户执行替换。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1b4bbef5e9b640e9b2a99df54a246ecf7fc7c6cd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:51:33-07:00","added":[],"removed":["tmp/ops-config/.env.production","tmp/ops-config/metrics-token.txt","tmp/pdfs/__pycache__/generate_task_loop_pdf.cpython-312.pyc","work/product_manual/__pycache__/build_product_manual.cpython-312.pyc"],"modified":[".gitignore","CLAUDE.md","reports/operations.latest.json","scripts/check-operations.mjs"]},{"id":"32f574b8462910b04586d4d9fdc2f7ce277d9c1a","message":"feat(platform): integrate governed HR product and runtime hardening\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/32f574b8462910b04586d4d9fdc2f7ce277d9c1a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-28T03:45:04-07:00","added":["apps/api-fastify/prisma/migrations/20260923000000_trigger_definition_version/migration.sql","apps/api-fastify/prisma/migrations/20260924000000_outcome_remediation/migration.sql","apps/api-fastify/prisma/migrations/20260925000000_outcome_remediation_rls/migration.sql","apps/api-fastify/prisma/migrations/20260926000000_outcome_remediation_force_rls/migration.sql","apps/api-nestjs/prisma/migrations/20260923000000_trigger_definition_version/migration.sql","apps/api-nestjs/prisma/migrations/20260924000000_outcome_remediation/migration.sql","apps/api-nestjs/prisma/migrations/20260925000000_outcome_remediation_rls/migration.sql","apps/api-nestjs/prisma/migrations/20260926000000_outcome_remediation_force_rls/migration.sql","apps/web/e2e/juhai-hr.acceptance.spec.ts","apps/web/src/components/workbench/OutcomeCenter.tsx","apps/web/src/components/workbench/ProjectWorkGraph.tsx","apps/web/src/components/workbench/RuntimeContextShell.tsx","apps/web/src/features/actors/components/ActorProfileEditor.tsx","apps/web/src/features/actors/lib/actor-profile-copy.ts","apps/web/src/features/auth/lib/session-sync.ts","apps/web/src/features/projects/api/project-api.ts","apps/web/src/features/projects/hooks/use-projects.ts","apps/web/src/features/triggers/api/triggers-api.ts","apps/web/src/features/triggers/hooks/use-triggers.ts","deploy/production/otel-collector-builder.yml","docs/domain/juhai-hr-blueprint.md","products/juhai.hr/acceptance/juhai.hr.personnel-core.acceptance.acceptance.mjs","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/ddl-authority.json","products/juhai.hr/distribution.json","products/juhai.hr/host/fastify.mjs","products/juhai.hr/host/nestjs.mjs","products/juhai.hr/host/server-runtime.mjs","products/juhai.hr/host/web/app/api/auth/config/route.ts","products/juhai.hr/host/web/app/api/auth/exchange/route.ts","products/juhai.hr/host/web/app/layout.tsx","products/juhai.hr/host/web/app/page.tsx","products/juhai.hr/host/web/components/InstalledJuhaiHrWorkspace.tsx","products/juhai.hr/host/web/e2e-results.json","products/juhai.hr/host/web/features/hr/api/hr-api.ts","products/juhai.hr/host/web/features/hr/components/HrDeliveryAuditWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrMasterDataWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelChangeWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelGovernanceWorkbench.tsx","products/juhai.hr/host/web/features/hr/hooks/use-hr.ts","products/juhai.hr/host/web/next.config.ts","products/juhai.hr/host/web/package.json","products/juhai.hr/host/web/postcss.config.js","products/juhai.hr/host/web/public","products/juhai.hr/host/web/tailwind.config.ts","products/juhai.hr/host/web/tsconfig.json","products/juhai.hr/manifest.json","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030000_personnel_core_phase1.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030100_personnel_core_phase1_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030200_personnel_core_complete.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030300_personnel_core_complete_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030400_personnel_duplicate_candidates.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030500_personnel_duplicate_candidate_storage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030600_identity_evidence_corrections.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030700_employment_probation_facts.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030800_personnel_core_explicit_rls.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826030900_assignment_successor_lineage.sql","products/juhai.hr/migrations/juhai.hr.personnel-core/20260826031000_employment_term_facts.sql","products/juhai.hr/src/delivery-audit-service.mjs","products/juhai.hr/src/fastify-adapter.d.mts","products/juhai.hr/src/fastify-adapter.mjs","products/juhai.hr/src/http-errors.mjs","products/juhai.hr/src/implementations.mjs","products/juhai.hr/src/master-data-service.mjs","products/juhai.hr/src/nestjs-adapter.d.mts","products/juhai.hr/src/nestjs-adapter.mjs","products/juhai.hr/src/os-composition.d.mts","products/juhai.hr/src/os-composition.mjs","products/juhai.hr/src/personnel-change-contracts.d.mts","products/juhai.hr/src/personnel-change-contracts.mjs","products/juhai.hr/src/personnel-change-service.mjs","products/juhai.hr/src/personnel-governance-service.mjs","products/juhai.hr/src/runtime-contracts.mjs","products/juhai.hr/src/web-workspace.d.mts","products/juhai.hr/src/web-workspace.mjs","reports/loki-image.latest.json","reports/otel-collector-image.latest.json","reports/tempo-image.latest.json","scripts/check-loki-image.mjs","scripts/check-otel-collector-image.mjs","scripts/check-tempo-image.mjs"],"removed":["deploy/production/alloy.alloy"],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/outcomes.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/test/auth.acceptance.test.ts","apps/api-fastify/test/outcomes.integration.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-fastify/test/work.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/src/events/events.gateway.ts","apps/api-nestjs/src/outcomes/outcomes.controller.ts","apps/api-nestjs/src/outcomes/outcomes.service.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/triggers/triggers.controller.ts","apps/api-nestjs/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/tasks.service.ts","apps/api-nestjs/test/auth.acceptance.test.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/api-nestjs/test/work.integration.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/ProjectsPanel.tsx","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/UsersPanel.tsx","apps/web/src/components/kernel/KernelWorkspaceShell.tsx","apps/web/src/components/views/AutomationView.tsx","apps/web/src/components/views/SystemView.tsx","apps/web/src/components/views/TeamView.tsx","apps/web/src/components/views/WorkbenchView.tsx","apps/web/src/components/workbench/AttentionInbox.tsx","apps/web/src/components/workbench/QueryErrorHost.tsx","apps/web/src/components/workbench/SkillPicker.tsx","apps/web/src/components/workbench/TaskCreateForm.tsx","apps/web/src/components/workbench/TaskDetail.tsx","apps/web/src/components/workbench/TaskList.tsx","apps/web/src/components/workbench/Timeline.tsx","apps/web/src/components/workbench/ToastHost.tsx","apps/web/src/features/actors/api/actors-api.ts","apps/web/src/features/actors/components/ActorBenchmarkPanel.tsx","apps/web/src/features/actors/components/DigitalEmployeeOnboarding.tsx","apps/web/src/features/actors/hooks/use-actors.ts","apps/web/src/features/attachments/components/AttachmentGovernancePanel.tsx","apps/web/src/features/attachments/hooks/use-attachments.ts","apps/web/src/features/auth/components/AuthGate.tsx","apps/web/src/features/conversations/components/ConversationGovernancePanel.tsx","apps/web/src/features/conversations/hooks/use-conversations.ts","apps/web/src/features/llm-governance/components/LlmInvocationReconciliationPanel.tsx","apps/web/src/features/llm-governance/hooks/use-llm-invocations.ts","apps/web/src/features/permissions/components/PermissionAssignmentsPanel.tsx","apps/web/src/features/permissions/hooks/use-permissions.ts","apps/web/src/features/rag/components/RagGovernancePanel.tsx","apps/web/src/features/rag/hooks/use-rag.ts","apps/web/src/features/skills/components/SkillManagementPanel.tsx","apps/web/src/features/skills/hooks/use-skills.ts","apps/web/src/features/tools/components/ToolGovernancePanel.tsx","apps/web/src/features/tools/components/ToolPicker.tsx","apps/web/src/features/tools/hooks/use-tools.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/attention.ts","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","apps/web/src/store/useAuthStore.ts","deploy/production/Dockerfile","deploy/production/access-audit-alerts.test.yml","deploy/production/alerts.yml","deploy/production/compose.yml","deploy/production/otel-collector.yml","deploy/production/prometheus.yml","docs/domain/learning-blueprint.md","docs/domain/llm-execution-blueprint.md","docs/domain/outcome-blueprint.md","docs/domain/owner-matrix.md","docs/domain/tool-execution-blueprint.md","docs/domain/trigger-blueprint.md","docs/domain/work-blueprint.md","docs/governance-experience.md","docs/operations/production-runbook.md","docs/product-extension-guide.md","governance.registry.json","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","kernel.products.json","kernel.products.lock.json","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/outcome.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/rls.test.ts","packages/contracts/src/rls.ts","packages/contracts/src/task.ts","packages/contracts/src/tenant.ts","packages/contracts/src/trigger.test.ts","packages/contracts/src/trigger.ts","pnpm-lock.yaml","pnpm-workspace.yaml","reports/access-audit.latest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/baseline.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-vulnerabilities.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/mobile-ios.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/trace-backend.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-access-audit.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-behavior.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-image-vulnerabilities.mjs","scripts/check-operations.mjs","scripts/check-trace-backend.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"d433548ec7561644062b04334161019919ea233d","message":"fix(governance)+fix(ci)+feat(gates): 治理体检轮 C227–C236 收口——CI 修红、门禁增强与全量三级门禁本地绿\n\nC227 产品验收 runner 缺 dist(run 33164556968 判责):两后端 build 前移 + A12 前置违规(负向实红)+ standalone 自含构建/:run 拆分\nC229 libssl CVE-2026-14456:RUNTIME_IMAGE 升级至含 3.5.7-1~deb13u2 的 distroless digest(升级前实查基座 dpkg)\nC230 网关限流塌缩:real_ip 信任链(默认回环)+ limit_req/conn_status 429 + O4 六断言\nC231 docs-truth 批间时序:--assert-only 复验接入 runtime 编排与 UI 聚合收尾\nC232 快照机器锚点:祖先关系 + 实测落后数离线核对(±1 自指窗,负向实红)\nC233 check:ci-gate:G14 现状机器化(当前诚实红 protected:false)+ CODEOWNERS\nC234 验收源卫生:mobile-ios 豁免绑 darwin、agedAcceptanceReports 14 天时效、untrack deploy-probe/QA v2–v10/pyc\nC236 juhai.hr 浏览器用例冻结日期时间炸弹:16 处日期改 UTC 动态锚定(两连红→trace 判责 409 RANGE_INVALID→修复后 31/31×2)\nC235 重号修正(原第二个 C216);O3/O32 断言按 C180 合并语义收敛(401=logoutSession+可见原因)\nG24 登记:无界列表清单/应用层租户配额/CLAUDE.md 瘦身/凭据轮换待办;D-3 留存草案与 target-env 13 条签收清单落盘\n\n本地证据(dirty 工作区,绑定各报告 provenance):pnpm check 24/24;check:runtime 683 tests/矩阵 204/204;check:ui 31/31×2 共 62;check:mobile 26 文件+iOS 自测 5/5\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/d433548ec7561644062b04334161019919ea233d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T20:14:39-07:00","added":[".github/CODEOWNERS","deploy/production/target-env-signoff.json","docs/standards/data-retention.md","reports/ci-gate.latest.json","scripts/check-ci-gate.mjs"],"removed":["tmp/deploy-probe-nestjs/.env.example","tmp/deploy-probe-nestjs/docker-compose.yml","tmp/deploy-probe-nestjs/nest-cli.json","tmp/deploy-probe-nestjs/package.json","tmp/deploy-probe-nestjs/prisma/migrations/20260818000000_init/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260819000000_outbox_replay_cursor/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260820000000_work_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260821000000_learning_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260822000000_trigger_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260823000000_outcome_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260824000000_attribution_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825000000_role_assignment/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825010000_workgraph_slice/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825020000_job_intent/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/20260825030000_skill_activation/migration.sql","tmp/deploy-probe-nestjs/prisma/migrations/migration_lock.toml","tmp/deploy-probe-nestjs/prisma/schema.prisma","tmp/deploy-probe-nestjs/prisma/seed.ts","tmp/deploy-probe-nestjs/scripts/behavior-parity-snapshot.mjs","tmp/deploy-probe-nestjs/src/actors/actor-events.service.ts","tmp/deploy-probe-nestjs/src/actors/actors.controller.ts","tmp/deploy-probe-nestjs/src/actors/actors.module.ts","tmp/deploy-probe-nestjs/src/actors/actors.service.ts","tmp/deploy-probe-nestjs/src/app.module.ts","tmp/deploy-probe-nestjs/src/common/api-http-exception.filter.ts","tmp/deploy-probe-nestjs/src/common/envelope.ts","tmp/deploy-probe-nestjs/src/common/tenant.decorator.ts","tmp/deploy-probe-nestjs/src/common/zod-validation.pipe.ts","tmp/deploy-probe-nestjs/src/create-app.ts","tmp/deploy-probe-nestjs/src/events/connection-registry.service.ts","tmp/deploy-probe-nestjs/src/events/event-bus.service.ts","tmp/deploy-probe-nestjs/src/events/events.gateway.ts","tmp/deploy-probe-nestjs/src/events/events.module.ts","tmp/deploy-probe-nestjs/src/events/fanout.service.ts","tmp/deploy-probe-nestjs/src/events/outbox-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/events/realtime-stats.controller.ts","tmp/deploy-probe-nestjs/src/events/replay.service.ts","tmp/deploy-probe-nestjs/src/health/health.controller.ts","tmp/deploy-probe-nestjs/src/health/health.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.module.ts","tmp/deploy-probe-nestjs/src/learning/learning.service.ts","tmp/deploy-probe-nestjs/src/main.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.controller.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.module.ts","tmp/deploy-probe-nestjs/src/outcomes/outcomes.service.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.module.ts","tmp/deploy-probe-nestjs/src/prisma/prisma.service.ts","tmp/deploy-probe-nestjs/src/queue/job-intent-dispatcher.service.ts","tmp/deploy-probe-nestjs/src/queue/jobs.controller.ts","tmp/deploy-probe-nestjs/src/queue/jobs.processor.ts","tmp/deploy-probe-nestjs/src/queue/queue.module.ts","tmp/deploy-probe-nestjs/src/queue/queue.types.ts","tmp/deploy-probe-nestjs/src/redis/redis.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.controller.ts","tmp/deploy-probe-nestjs/src/roles/roles.module.ts","tmp/deploy-probe-nestjs/src/roles/roles.service.ts","tmp/deploy-probe-nestjs/src/sse/sse.controller.ts","tmp/deploy-probe-nestjs/src/sse/sse.module.ts","tmp/deploy-probe-nestjs/src/statemachine/index.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.engine.ts","tmp/deploy-probe-nestjs/src/statemachine/statemachine.types.ts","tmp/deploy-probe-nestjs/src/triggers/trigger-engine.service.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.controller.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.module.ts","tmp/deploy-probe-nestjs/src/triggers/triggers.service.ts","tmp/deploy-probe-nestjs/src/users/users.controller.ts","tmp/deploy-probe-nestjs/src/users/users.module.ts","tmp/deploy-probe-nestjs/src/users/users.service.ts","tmp/deploy-probe-nestjs/src/work/grants.service.ts","tmp/deploy-probe-nestjs/src/work/projects.controller.ts","tmp/deploy-probe-nestjs/src/work/projects.service.ts","tmp/deploy-probe-nestjs/src/work/runtimes.service.ts","tmp/deploy-probe-nestjs/src/work/skills.controller.ts","tmp/deploy-probe-nestjs/src/work/skills.service.ts","tmp/deploy-probe-nestjs/src/work/task-events.service.ts","tmp/deploy-probe-nestjs/src/work/tasks.controller.ts","tmp/deploy-probe-nestjs/src/work/tasks.service.ts","tmp/deploy-probe-nestjs/src/work/work.module.ts","tmp/deploy-probe-nestjs/test/actor-events.integration.test.ts","tmp/deploy-probe-nestjs/test/auth.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.jwks.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.roles.acceptance.test.ts","tmp/deploy-probe-nestjs/test/auth.rs256.acceptance.test.ts","tmp/deploy-probe-nestjs/test/dead-letters.integration.test.ts","tmp/deploy-probe-nestjs/test/http.acceptance.test.ts","tmp/deploy-probe-nestjs/test/job-intent.dispatcher.test.ts","tmp/deploy-probe-nestjs/test/learning.concurrency.test.ts","tmp/deploy-probe-nestjs/test/llm.acceptance.test.ts","tmp/deploy-probe-nestjs/test/llm.anthropic.acceptance.test.ts","tmp/deploy-probe-nestjs/test/outbox.concurrency.test.ts","tmp/deploy-probe-nestjs/test/outbox.deadletter.test.ts","tmp/deploy-probe-nestjs/test/outcomes.integration.test.ts","tmp/deploy-probe-nestjs/test/realtime.command.test.ts","tmp/deploy-probe-nestjs/test/realtime.replay.test.ts","tmp/deploy-probe-nestjs/test/realtime.stats.test.ts","tmp/deploy-probe-nestjs/test/realtime.subscription.test.ts","tmp/deploy-probe-nestjs/test/realtime.tenant.test.ts","tmp/deploy-probe-nestjs/test/task-events.integration.test.ts","tmp/deploy-probe-nestjs/test/triggers.integration.test.ts","tmp/deploy-probe-nestjs/test/work.integration.test.ts","tmp/deploy-probe-nestjs/tsconfig.build.json","tmp/deploy-probe-nestjs/tsconfig.json","tmp/deploy-probe-nestjs/vitest.config.ts","tmp/pdfs/task-loop-qa-v10/page-01.png","tmp/pdfs/task-loop-qa-v10/page-02.png","tmp/pdfs/task-loop-qa-v10/page-03.png","tmp/pdfs/task-loop-qa-v10/page-04.png","tmp/pdfs/task-loop-qa-v10/page-05.png","tmp/pdfs/task-loop-qa-v10/page-06.png","tmp/pdfs/task-loop-qa-v10/page-07.png","tmp/pdfs/task-loop-qa-v10/page-08.png","tmp/pdfs/task-loop-qa-v10/page-09.png","tmp/pdfs/task-loop-qa-v10/page-10.png","tmp/pdfs/task-loop-qa-v10/page-11.png","tmp/pdfs/task-loop-qa-v10/page-12.png","tmp/pdfs/task-loop-qa-v10/page-13.png","tmp/pdfs/task-loop-qa-v10/page-14.png","tmp/pdfs/task-loop-qa-v10/page-15.png","tmp/pdfs/task-loop-qa-v2/page-01.png","tmp/pdfs/task-loop-qa-v2/page-02.png","tmp/pdfs/task-loop-qa-v2/page-03.png","tmp/pdfs/task-loop-qa-v2/page-04.png","tmp/pdfs/task-loop-qa-v2/page-05.png","tmp/pdfs/task-loop-qa-v2/page-06.png","tmp/pdfs/task-loop-qa-v2/page-07.png","tmp/pdfs/task-loop-qa-v2/page-08.png","tmp/pdfs/task-loop-qa-v2/page-09.png","tmp/pdfs/task-loop-qa-v2/page-10.png","tmp/pdfs/task-loop-qa-v2/page-11.png","tmp/pdfs/task-loop-qa-v2/page-12.png","tmp/pdfs/task-loop-qa-v2/page-13.png","tmp/pdfs/task-loop-qa-v2/page-14.png","tmp/pdfs/task-loop-qa-v2/page-15.png","tmp/pdfs/task-loop-qa-v3/contact-sheet.png","tmp/pdfs/task-loop-qa-v3/delivery-01.png","tmp/pdfs/task-loop-qa-v3/delivery-02.png","tmp/pdfs/task-loop-qa-v3/delivery-03.png","tmp/pdfs/task-loop-qa-v3/delivery-04.png","tmp/pdfs/task-loop-qa-v3/delivery-05.png","tmp/pdfs/task-loop-qa-v3/delivery-06.png","tmp/pdfs/task-loop-qa-v3/delivery-07.png","tmp/pdfs/task-loop-qa-v3/delivery-08.png","tmp/pdfs/task-loop-qa-v3/delivery-09.png","tmp/pdfs/task-loop-qa-v3/delivery-10.png","tmp/pdfs/task-loop-qa-v3/delivery-11.png","tmp/pdfs/task-loop-qa-v3/delivery-12.png","tmp/pdfs/task-loop-qa-v3/delivery-13.png","tmp/pdfs/task-loop-qa-v3/delivery-14.png","tmp/pdfs/task-loop-qa-v3/delivery-15.png","tmp/pdfs/task-loop-qa-v3/delivery-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-01.png","tmp/pdfs/task-loop-qa-v3/final-02.png","tmp/pdfs/task-loop-qa-v3/final-03.png","tmp/pdfs/task-loop-qa-v3/final-04.png","tmp/pdfs/task-loop-qa-v3/final-05.png","tmp/pdfs/task-loop-qa-v3/final-06.png","tmp/pdfs/task-loop-qa-v3/final-07.png","tmp/pdfs/task-loop-qa-v3/final-08.png","tmp/pdfs/task-loop-qa-v3/final-09.png","tmp/pdfs/task-loop-qa-v3/final-10.png","tmp/pdfs/task-loop-qa-v3/final-11.png","tmp/pdfs/task-loop-qa-v3/final-12.png","tmp/pdfs/task-loop-qa-v3/final-13.png","tmp/pdfs/task-loop-qa-v3/final-14.png","tmp/pdfs/task-loop-qa-v3/final-15.png","tmp/pdfs/task-loop-qa-v3/final-contact-sheet.png","tmp/pdfs/task-loop-qa-v3/final-page-13.png","tmp/pdfs/task-loop-qa-v3/page-01.png","tmp/pdfs/task-loop-qa-v3/page-02.png","tmp/pdfs/task-loop-qa-v3/page-03.png","tmp/pdfs/task-loop-qa-v3/page-04.png","tmp/pdfs/task-loop-qa-v3/page-05.png","tmp/pdfs/task-loop-qa-v3/page-06.png","tmp/pdfs/task-loop-qa-v3/page-07.png","tmp/pdfs/task-loop-qa-v3/page-08.png","tmp/pdfs/task-loop-qa-v3/page-09.png","tmp/pdfs/task-loop-qa-v3/page-10.png","tmp/pdfs/task-loop-qa-v3/page-11.png","tmp/pdfs/task-loop-qa-v3/page-12.png","tmp/pdfs/task-loop-qa-v3/page-13.png","tmp/pdfs/task-loop-qa-v3/page-14.png","tmp/pdfs/task-loop-qa-v3/page-15.png","tmp/pdfs/task-loop-qa-v4/contact-sheet.png","tmp/pdfs/task-loop-qa-v4/page-01.png","tmp/pdfs/task-loop-qa-v4/page-02.png","tmp/pdfs/task-loop-qa-v4/page-03.png","tmp/pdfs/task-loop-qa-v4/page-04.png","tmp/pdfs/task-loop-qa-v4/page-05.png","tmp/pdfs/task-loop-qa-v4/page-06.png","tmp/pdfs/task-loop-qa-v4/page-07.png","tmp/pdfs/task-loop-qa-v4/page-08.png","tmp/pdfs/task-loop-qa-v4/page-09.png","tmp/pdfs/task-loop-qa-v4/page-10.png","tmp/pdfs/task-loop-qa-v4/page-11.png","tmp/pdfs/task-loop-qa-v4/page-12.png","tmp/pdfs/task-loop-qa-v4/page-13.png","tmp/pdfs/task-loop-qa-v4/page-14.png","tmp/pdfs/task-loop-qa-v4/page-15.png","tmp/pdfs/task-loop-qa-v5/contact-sheet.png","tmp/pdfs/task-loop-qa-v5/page-01.png","tmp/pdfs/task-loop-qa-v5/page-02.png","tmp/pdfs/task-loop-qa-v5/page-03.png","tmp/pdfs/task-loop-qa-v5/page-04.png","tmp/pdfs/task-loop-qa-v5/page-05.png","tmp/pdfs/task-loop-qa-v5/page-06.png","tmp/pdfs/task-loop-qa-v5/page-07.png","tmp/pdfs/task-loop-qa-v5/page-08.png","tmp/pdfs/task-loop-qa-v5/page-09.png","tmp/pdfs/task-loop-qa-v5/page-10.png","tmp/pdfs/task-loop-qa-v5/page-11.png","tmp/pdfs/task-loop-qa-v5/page-12.png","tmp/pdfs/task-loop-qa-v5/page-13.png","tmp/pdfs/task-loop-qa-v5/page-14.png","tmp/pdfs/task-loop-qa-v5/page-15.png","tmp/pdfs/task-loop-qa-v6/page-01.png","tmp/pdfs/task-loop-qa-v6/page-02.png","tmp/pdfs/task-loop-qa-v6/page-13.png","tmp/pdfs/task-loop-qa-v6/page-14.png","tmp/pdfs/task-loop-qa-v6/page-15.png","tmp/pdfs/task-loop-qa-v7/page-01.png","tmp/pdfs/task-loop-qa-v7/page-02.png","tmp/pdfs/task-loop-qa-v7/page-03.png","tmp/pdfs/task-loop-qa-v7/page-04.png","tmp/pdfs/task-loop-qa-v7/page-05.png","tmp/pdfs/task-loop-qa-v7/page-06.png","tmp/pdfs/task-loop-qa-v7/page-07.png","tmp/pdfs/task-loop-qa-v7/page-08.png","tmp/pdfs/task-loop-qa-v7/page-09.png","tmp/pdfs/task-loop-qa-v7/page-10.png","tmp/pdfs/task-loop-qa-v7/page-11.png","tmp/pdfs/task-loop-qa-v7/page-12.png","tmp/pdfs/task-loop-qa-v7/page-13.png","tmp/pdfs/task-loop-qa-v7/page-14.png","tmp/pdfs/task-loop-qa-v7/page-15.png","tmp/pdfs/task-loop-qa-v8/page-01.png","tmp/pdfs/task-loop-qa-v8/page-02.png","tmp/pdfs/task-loop-qa-v8/page-03.png","tmp/pdfs/task-loop-qa-v8/page-04.png","tmp/pdfs/task-loop-qa-v8/page-05.png","tmp/pdfs/task-loop-qa-v8/page-06.png","tmp/pdfs/task-loop-qa-v8/page-07.png","tmp/pdfs/task-loop-qa-v8/page-08.png","tmp/pdfs/task-loop-qa-v8/page-09.png","tmp/pdfs/task-loop-qa-v8/page-10.png","tmp/pdfs/task-loop-qa-v8/page-11.png","tmp/pdfs/task-loop-qa-v8/page-12.png","tmp/pdfs/task-loop-qa-v8/page-13.png","tmp/pdfs/task-loop-qa-v8/page-14.png","tmp/pdfs/task-loop-qa-v8/page-15.png","tmp/pdfs/task-loop-qa-v9/page-01.png","tmp/pdfs/task-loop-qa-v9/page-02.png","tmp/pdfs/task-loop-qa-v9/page-03.png","tmp/pdfs/task-loop-qa-v9/page-04.png","tmp/pdfs/task-loop-qa-v9/page-05.png","tmp/pdfs/task-loop-qa-v9/page-06.png","tmp/pdfs/task-loop-qa-v9/page-07.png","tmp/pdfs/task-loop-qa-v9/page-08.png","tmp/pdfs/task-loop-qa-v9/page-09.png","tmp/pdfs/task-loop-qa-v9/page-10.png","tmp/pdfs/task-loop-qa-v9/page-11.png","tmp/pdfs/task-loop-qa-v9/page-12.png","tmp/pdfs/task-loop-qa-v9/page-13.png","tmp/pdfs/task-loop-qa-v9/page-14.png","tmp/pdfs/task-loop-qa-v9/page-15.png","tmp/pdfs/task-loop-qa/page-01.png","tmp/pdfs/task-loop-qa/page-02.png","tmp/pdfs/task-loop-qa/page-03.png","tmp/pdfs/task-loop-qa/page-04.png","tmp/pdfs/task-loop-qa/page-05.png","tmp/pdfs/task-loop-qa/page-06.png","tmp/pdfs/task-loop-qa/page-07.png","tmp/pdfs/task-loop-qa/page-08.png","tmp/pdfs/task-loop-qa/page-09.png","tmp/pdfs/task-loop-qa/page-10.png","tmp/pdfs/task-loop-qa/page-11.png","tmp/pdfs/task-loop-qa/page-12.png","tmp/pdfs/task-loop-qa/page-13.png"],"modified":[".gitignore","CLAUDE.md","apps/web/src/lib/api.ts","deploy/production/.env.production.example","deploy/production/Dockerfile","deploy/production/compose.yml","deploy/production/nginx.conf.template","docs/governance-experience.md","docs/operations/production-runbook.md","package.json","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-docs-truth.mjs","scripts/check-operations.mjs","scripts/check-product-acceptance-runtime.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-all.mjs","scripts/governance-report.mjs"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":74466,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-29T12:51:42+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
|
18
|
1788059693
|
1788059711
|
0
|
1788059683
|
1788059711
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23558
|
docs: 跨段一致性归因修正——t2va 工作流边界而非模型上限
|
90
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
cc4fd9ff70eff1c23556db5da7ac36b0639383e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1c5b6ec9fef8d18a24b5bcd6a44665279fb3f493","after":"cc4fd9ff70eff1c23556db5da7ac36b0639383e8","compare_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/compare/1c5b6ec9fef8d18a24b5bcd6a44665279fb3f493...cc4fd9ff70eff1c23556db5da7ac36b0639383e8","commits":[{"id":"cc4fd9ff70eff1c23556db5da7ac36b0639383e8","message":"docs: 跨段一致性归因修正——t2va 工作流边界而非模型上限\n\n本机 diffusers 管线实查(modular_blocks_minimax_h3 _workflow_map):H3 实为\nt2va / fl2va / ref2va 三工作流。fl2va(首尾帧锚定)与 t2va 共用已缓存的 62G\ntransformer 分区、零下载可用;ref2va(全模态有序参考,\u003cPicture i\u003e/\u003cAudio j\u003e/\n\u003cVideo k\u003e 标签语义)需另下 ~62GB transformer_ref。UI 提示、README、契约注释、\n蓝图、CLAUDE.md 真源地图五处按实归因;e2e 锚定短语保持不变。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/cc4fd9ff70eff1c23556db5da7ac36b0639383e8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T20:23:45-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","docs/domain/storyboard-blueprint.md","packages/contracts/src/h3-storyboard.ts","packages/contracts/tsconfig.tsbuildinfo"]}],"total_commits":0,"head_commit":{"id":"cc4fd9ff70eff1c23556db5da7ac36b0639383e8","message":"docs: 跨段一致性归因修正——t2va 工作流边界而非模型上限\n\n本机 diffusers 管线实查(modular_blocks_minimax_h3 _workflow_map):H3 实为\nt2va / fl2va / ref2va 三工作流。fl2va(首尾帧锚定)与 t2va 共用已缓存的 62G\ntransformer 分区、零下载可用;ref2va(全模态有序参考,\u003cPicture i\u003e/\u003cAudio j\u003e/\n\u003cVideo k\u003e 标签语义)需另下 ~62GB transformer_ref。UI 提示、README、契约注释、\n蓝图、CLAUDE.md 真源地图五处按实归因;e2e 锚定短语保持不变。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/cc4fd9ff70eff1c23556db5da7ac36b0639383e8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-29T20:23:45-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","docs/domain/storyboard-blueprint.md","packages/contracts/src/h3-storyboard.ts","packages/contracts/tsconfig.tsbuildinfo"]},"repository":{"id":90,"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":"minimax-h3-studio","full_name":"luoanwu/minimax-h3-studio","description":"MiniMax H3 本地视频生成 Studio:模型下载、管理、加载、采样与交付工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":933,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio/languages","html_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/minimax-h3-studio.git","clone_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-30T09:07:20+08:00","updated_at":"2026-08-30T11:15:47+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
|
1788060627
|
0
|
1788060230
|
1788060627
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23589
|
feat(public-file): 新增文件访问规划
|
100
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
2387e931f0ea23c2d6e540ae2a62fe923e35f5d6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"c5da8254acbbc8775def2fe45e59dbe5fe3531be","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c5da8254acbbc8775def2fe45e59dbe5fe3531be","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","message":"feat: 平台身份重绑定 file-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/13dd323e6269c9aaa3f1ba7fd1b40e04f867b23b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.file/README.md","products/juhai.file/acceptance/juhai.file.order.acceptance.mjs","products/juhai.file/migrations/juhai.file.order/20260826090000_create_orders.sql","products/juhai.file/migrations/juhai.file.order/20260826091000_create_order_events.sql","products/juhai.file/package.json","products/juhai.file/product.manifest.json","products/juhai.file/src/contracts.ts","products/juhai.file/src/fastify.ts","products/juhai.file/src/host.ts","products/juhai.file/src/index.ts","products/juhai.file/src/manifest.ts","products/juhai.file/src/nestjs.ts","products/juhai.file/src/order-repository.ts","products/juhai.file/src/tools.ts","products/juhai.file/src/web.tsx","products/juhai.file/test/os-host.runtime.test.ts","products/juhai.file/tsconfig.os-host.json","products/juhai.file/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"c0acd82b726e9023cd0235d4986b063cf9c57d36","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/c0acd82b726e9023cd0235d4986b063cf9c57d36","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"437046945042b060fbafaa33cf8bc68844349036","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/437046945042b060fbafaa33cf8bc68844349036","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:46-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","message":"feat(public-file): 新增文件访问规划\n","url":"https://gitea.g-hi.com/luoanwu/file-platform/commit/2387e931f0ea23c2d6e540ae2a62fe923e35f5d6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/public-file/public-file-access.service.ts","docs/domain/public-file-ref-blueprint.md","packages/contracts/src/public-file-access-planner.test.ts","packages/contracts/src/public-file-access-planner.ts","packages/contracts/src/public-file-ref.test.ts","packages/contracts/src/public-file-ref.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":100,"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":"file-platform","full_name":"luoanwu/file-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/file-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/file-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/file-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/file-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-09-01T21:58:01+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788271408
|
1788278640
|
0
|
1788271184
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23590
|
feat(audit): 新增审计追加准入规划
|
98
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
4197c76a3677f8a51b929de86073cda7c8220673
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"4197c76a3677f8a51b929de86073cda7c8220673","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"4197c76a3677f8a51b929de86073cda7c8220673","message":"feat(audit): 新增审计追加准入规划\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/4197c76a3677f8a51b929de86073cda7c8220673","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/audit/audit-append.service.ts","docs/domain/audit-event-preflight-blueprint.md","packages/contracts/src/audit-append-planner.test.ts","packages/contracts/src/audit-append-planner.ts","packages/contracts/src/audit-event-preflight.test.ts","packages/contracts/src/audit-event-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ceee9a45f5847aec31a418691652306c7410a003","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/ceee9a45f5847aec31a418691652306c7410a003","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:15-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"312466c67c0f09500822f477c6343129548ea4d3","message":"feat: 平台身份重绑定 audit-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/312466c67c0f09500822f477c6343129548ea4d3","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:08-07:00","added":["docs/framework-migration.md","products/juhai.audit/README.md","products/juhai.audit/acceptance/juhai.audit.order.acceptance.mjs","products/juhai.audit/migrations/juhai.audit.order/20260826090000_create_orders.sql","products/juhai.audit/migrations/juhai.audit.order/20260826091000_create_order_events.sql","products/juhai.audit/package.json","products/juhai.audit/product.manifest.json","products/juhai.audit/src/contracts.ts","products/juhai.audit/src/fastify.ts","products/juhai.audit/src/host.ts","products/juhai.audit/src/index.ts","products/juhai.audit/src/manifest.ts","products/juhai.audit/src/nestjs.ts","products/juhai.audit/src/order-repository.ts","products/juhai.audit/src/tools.ts","products/juhai.audit/src/web.tsx","products/juhai.audit/test/os-host.runtime.test.ts","products/juhai.audit/tsconfig.os-host.json","products/juhai.audit/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"bd3e350a2ab060060a7a184830cb6f91121f739d","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/bd3e350a2ab060060a7a184830cb6f91121f739d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:18-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"65ee3a31c6aa5d6f9e6d2f3d50ff4bf6f4bc8ff8","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/65ee3a31c6aa5d6f9e6d2f3d50ff4bf6f4bc8ff8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:46:44-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"4197c76a3677f8a51b929de86073cda7c8220673","message":"feat(audit): 新增审计追加准入规划\n","url":"https://gitea.g-hi.com/luoanwu/audit-platform/commit/4197c76a3677f8a51b929de86073cda7c8220673","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/audit/audit-append.service.ts","docs/domain/audit-event-preflight-blueprint.md","packages/contracts/src/audit-append-planner.test.ts","packages/contracts/src/audit-append-planner.ts","packages/contracts/src/audit-event-preflight.test.ts","packages/contracts/src/audit-event-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":98,"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":"audit-platform","full_name":"luoanwu/audit-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/audit-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/audit-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/audit-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/audit-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/audit-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-09-01T21:57:57+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
1788278400
|
1788279240
|
0
|
1788271184
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23591
|
feat(ingress): 新增入口准入规划
|
103
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a4864b772d58e60a37218a8e2b456a3ab9f789b0","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/a4864b772d58e60a37218a8e2b456a3ab9f789b0","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"184d79f7bbf320b292a3de4a0f977aa8d673528b","message":"feat: 平台身份重绑定 app-gateway(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/184d79f7bbf320b292a3de4a0f977aa8d673528b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appgateway/README.md","products/juhai.appgateway/acceptance/juhai.appgateway.order.acceptance.mjs","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826090000_create_orders.sql","products/juhai.appgateway/migrations/juhai.appgateway.order/20260826091000_create_order_events.sql","products/juhai.appgateway/package.json","products/juhai.appgateway/product.manifest.json","products/juhai.appgateway/src/contracts.ts","products/juhai.appgateway/src/fastify.ts","products/juhai.appgateway/src/host.ts","products/juhai.appgateway/src/index.ts","products/juhai.appgateway/src/manifest.ts","products/juhai.appgateway/src/nestjs.ts","products/juhai.appgateway/src/order-repository.ts","products/juhai.appgateway/src/tools.ts","products/juhai.appgateway/src/web.tsx","products/juhai.appgateway/test/os-host.runtime.test.ts","products/juhai.appgateway/tsconfig.os-host.json","products/juhai.appgateway/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"19e1119a75f21f174cdb1fc66b4d1da0dca08de7","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/19e1119a75f21f174cdb1fc66b4d1da0dca08de7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/7ea8a1b88a87d4d7d05d8e9972a7c225461e18b6","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","message":"feat(ingress): 新增入口准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-gateway/commit/6fd94bb5e6fd13ab0a39517ff61f62fa25f3cc6a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/ingress/ingress-admission.service.ts","docs/domain/ingress-context-blueprint.md","packages/contracts/src/ingress-admission-planner.test.ts","packages/contracts/src/ingress-admission-planner.ts","packages/contracts/src/ingress-context.test.ts","packages/contracts/src/ingress-context.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":103,"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":"app-gateway","full_name":"luoanwu/app-gateway","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-gateway","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-gateway","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-gateway.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-gateway.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:07+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278542
|
1788279240
|
0
|
1788271185
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23592
|
feat(capacity): 新增资源标签契约
|
104
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","message":"feat(capacity): 新增资源标签契约\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/resource-tags-blueprint.md","packages/contracts/src/resource-tags.test.ts","packages/contracts/src/resource-tags.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"e6c88cfc485e250d564fcae637c22bf6453268a4","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/e6c88cfc485e250d564fcae637c22bf6453268a4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:29-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d67a89fd8645c27e839259f0a6a4b95666756729","message":"feat: 平台身份重绑定 cost-capacity(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/d67a89fd8645c27e839259f0a6a4b95666756729","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:22-07:00","added":["docs/framework-migration.md","products/juhai.costcapacity/README.md","products/juhai.costcapacity/acceptance/juhai.costcapacity.order.acceptance.mjs","products/juhai.costcapacity/migrations/juhai.costcapacity.order/20260826090000_create_orders.sql","products/juhai.costcapacity/migrations/juhai.costcapacity.order/20260826091000_create_order_events.sql","products/juhai.costcapacity/package.json","products/juhai.costcapacity/product.manifest.json","products/juhai.costcapacity/src/contracts.ts","products/juhai.costcapacity/src/fastify.ts","products/juhai.costcapacity/src/host.ts","products/juhai.costcapacity/src/index.ts","products/juhai.costcapacity/src/manifest.ts","products/juhai.costcapacity/src/nestjs.ts","products/juhai.costcapacity/src/order-repository.ts","products/juhai.costcapacity/src/tools.ts","products/juhai.costcapacity/src/web.tsx","products/juhai.costcapacity/test/os-host.runtime.test.ts","products/juhai.costcapacity/tsconfig.os-host.json","products/juhai.costcapacity/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"5fb2d0dedcb19ab42f3be24316582eeaacddd59d","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/5fb2d0dedcb19ab42f3be24316582eeaacddd59d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f8cbd83703e403e0fccbd379d2946a655f337814","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/f8cbd83703e403e0fccbd379d2946a655f337814","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:31-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","message":"feat(capacity): 新增资源标签契约\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/resource-tags-blueprint.md","packages/contracts/src/resource-tags.test.ts","packages/contracts/src/resource-tags.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":104,"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":"cost-capacity","full_name":"luoanwu/cost-capacity","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/cost-capacity/languages","html_url":"https://gitea.g-hi.com/luoanwu/cost-capacity","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/cost-capacity","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/cost-capacity.git","clone_url":"https://gitea.g-hi.com/luoanwu/cost-capacity.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:09+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278684
|
1788279540
|
0
|
1788271185
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23593
|
feat(registry): 新增清单准入规划
|
102
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
84ddb30d145311a96f500560acdcf6b3b7d6a910
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"84ddb30d145311a96f500560acdcf6b3b7d6a910","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"4b7fa15f1cb4502edae19204a2fea5645dc09301","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/4b7fa15f1cb4502edae19204a2fea5645dc09301","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"18b7855652a9da5c316d17740ca79db956231232","message":"feat: 平台身份重绑定 app-registry(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/18b7855652a9da5c316d17740ca79db956231232","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:16-07:00","added":["docs/framework-migration.md","products/juhai.appregistry/README.md","products/juhai.appregistry/acceptance/juhai.appregistry.order.acceptance.mjs","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826090000_create_orders.sql","products/juhai.appregistry/migrations/juhai.appregistry.order/20260826091000_create_order_events.sql","products/juhai.appregistry/package.json","products/juhai.appregistry/product.manifest.json","products/juhai.appregistry/src/contracts.ts","products/juhai.appregistry/src/fastify.ts","products/juhai.appregistry/src/host.ts","products/juhai.appregistry/src/index.ts","products/juhai.appregistry/src/manifest.ts","products/juhai.appregistry/src/nestjs.ts","products/juhai.appregistry/src/order-repository.ts","products/juhai.appregistry/src/tools.ts","products/juhai.appregistry/src/web.tsx","products/juhai.appregistry/test/os-host.runtime.test.ts","products/juhai.appregistry/tsconfig.os-host.json","products/juhai.appregistry/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/53dce4a57c8dda8e9bd74a22b3fb1557a45494c1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f3d8def24403f71854453326335ea4f5f3fba94d","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/f3d8def24403f71854453326335ea4f5f3fba94d","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"84ddb30d145311a96f500560acdcf6b3b7d6a910","message":"feat(registry): 新增清单准入规划\n","url":"https://gitea.g-hi.com/luoanwu/app-registry/commit/84ddb30d145311a96f500560acdcf6b3b7d6a910","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["apps/api-nestjs/src/registry/manifest-admission.service.ts","docs/domain/registry-snapshot-blueprint.md","packages/contracts/src/manifest-admission-planner.test.ts","packages/contracts/src/manifest-admission-planner.ts","packages/contracts/src/registry-snapshot.test.ts","packages/contracts/src/registry-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":102,"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":"app-registry","full_name":"luoanwu/app-registry","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry/languages","html_url":"https://gitea.g-hi.com/luoanwu/app-registry","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/app-registry","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/app-registry.git","clone_url":"https://gitea.g-hi.com/luoanwu/app-registry.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:05+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278762
|
1788279540
|
0
|
1788271185
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23594
|
feat(metrics): 新增指标契约复核
|
105
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
f76fa1f553ada89174b9b59a934711373396a1f5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"f76fa1f553ada89174b9b59a934711373396a1f5","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"399e265e2c0054d3c9ebc58b2551268b1b6d68ce","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/399e265e2c0054d3c9ebc58b2551268b1b6d68ce","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","message":"feat: 平台身份重绑定 data-analytics(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/544a89bfd291ba3ecfc3d7b7008fa1d6952c0850","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.analytics/README.md","products/juhai.analytics/acceptance/juhai.analytics.order.acceptance.mjs","products/juhai.analytics/migrations/juhai.analytics.order/20260826090000_create_orders.sql","products/juhai.analytics/migrations/juhai.analytics.order/20260826091000_create_order_events.sql","products/juhai.analytics/package.json","products/juhai.analytics/product.manifest.json","products/juhai.analytics/src/contracts.ts","products/juhai.analytics/src/fastify.ts","products/juhai.analytics/src/host.ts","products/juhai.analytics/src/index.ts","products/juhai.analytics/src/manifest.ts","products/juhai.analytics/src/nestjs.ts","products/juhai.analytics/src/order-repository.ts","products/juhai.analytics/src/tools.ts","products/juhai.analytics/src/web.tsx","products/juhai.analytics/test/os-host.runtime.test.ts","products/juhai.analytics/tsconfig.os-host.json","products/juhai.analytics/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"1f25e1e1ae1cc7be1f0964f70aea4215a023d717","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/1f25e1e1ae1cc7be1f0964f70aea4215a023d717","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"418f29cd598d8d101563ed02bfe7e96503cb6ee4","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/418f29cd598d8d101563ed02bfe7e96503cb6ee4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"f76fa1f553ada89174b9b59a934711373396a1f5","message":"feat(metrics): 新增指标契约复核\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/f76fa1f553ada89174b9b59a934711373396a1f5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:34-07:00","added":["docs/domain/metric-contract-blueprint.md","packages/contracts/src/metric-contract.test.ts","packages/contracts/src/metric-contract.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":105,"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":"data-analytics","full_name":"luoanwu/data-analytics","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics/languages","html_url":"https://gitea.g-hi.com/luoanwu/data-analytics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/data-analytics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/data-analytics.git","clone_url":"https://gitea.g-hi.com/luoanwu/data-analytics.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:11+08:00","updated_at":"2026-09-01T21:59: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
|
6
|
1788278840
|
1788279540
|
0
|
1788271185
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23595
|
feat(scope): 新增作用域解析规划
|
106
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
a92f8b4ba943c410e739b5b60b1fea8e24f09c9e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03fe4ab65eed33a77d99c9785b0817cf7e15bf03","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/03fe4ab65eed33a77d99c9785b0817cf7e15bf03","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"d9b72b0c1d941ca1e6087644f706019eb80d9755","message":"feat: 平台身份重绑定 tenant-scope(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/d9b72b0c1d941ca1e6087644f706019eb80d9755","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:23-07:00","added":["docs/framework-migration.md","products/juhai.tenantscope/README.md","products/juhai.tenantscope/acceptance/juhai.tenantscope.order.acceptance.mjs","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826090000_create_orders.sql","products/juhai.tenantscope/migrations/juhai.tenantscope.order/20260826091000_create_order_events.sql","products/juhai.tenantscope/package.json","products/juhai.tenantscope/product.manifest.json","products/juhai.tenantscope/src/contracts.ts","products/juhai.tenantscope/src/fastify.ts","products/juhai.tenantscope/src/host.ts","products/juhai.tenantscope/src/index.ts","products/juhai.tenantscope/src/manifest.ts","products/juhai.tenantscope/src/nestjs.ts","products/juhai.tenantscope/src/order-repository.ts","products/juhai.tenantscope/src/tools.ts","products/juhai.tenantscope/src/web.tsx","products/juhai.tenantscope/test/os-host.runtime.test.ts","products/juhai.tenantscope/tsconfig.os-host.json","products/juhai.tenantscope/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/015f74509cb46fce6f34ae54ac33e9a5e7c5f86e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"eeee196b3c90ac39ac619cab997897d2e6a0c89e","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/eeee196b3c90ac39ac619cab997897d2e6a0c89e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:39-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","message":"feat(scope): 新增作用域解析规划\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/a92f8b4ba943c410e739b5b60b1fea8e24f09c9e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/scope/scope-resolution.service.ts","docs/domain/scope-snapshot-blueprint.md","packages/contracts/src/scope-resolution-planner.test.ts","packages/contracts/src/scope-resolution-planner.ts","packages/contracts/src/scope-snapshot.test.ts","packages/contracts/src/scope-snapshot.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":106,"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":"tenant-scope","full_name":"luoanwu/tenant-scope","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope/languages","html_url":"https://gitea.g-hi.com/luoanwu/tenant-scope","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/tenant-scope","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/tenant-scope.git","clone_url":"https://gitea.g-hi.com/luoanwu/tenant-scope.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:13+08:00","updated_at":"2026-09-01T21:59:47+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
|
6
|
1788278922
|
1788279840
|
0
|
1788271187
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23596
|
feat(delivery): 新增制品晋级复核
|
107
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
3652661600d592fcb613bfa9c99558f81faec118
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"3652661600d592fcb613bfa9c99558f81faec118","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"3652661600d592fcb613bfa9c99558f81faec118","message":"feat(delivery): 新增制品晋级复核\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/3652661600d592fcb613bfa9c99558f81faec118","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/delivery/artifact-advancement-planning.service.ts","docs/domain/delivery-control-blueprint.md","packages/delivery-control/package.json","packages/delivery-control/src/artifact-advancement-planner.cjs","packages/delivery-control/src/artifact-advancement-planner.d.cts","packages/delivery-control/src/artifact-advancement-planner.d.ts","packages/delivery-control/src/ci-gate-audit.mjs","packages/delivery-control/src/index.cjs","packages/delivery-control/src/index.d.ts","packages/delivery-control/test/artifact-advancement-planner.test.mjs","packages/delivery-control/test/ci-gate-audit.test.mjs","reports/runtime-acceptance.latest.json","scripts/audit-ci-gates.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","turbo.json"]},{"id":"d61db0e94f32ca06bd104ef261cb25b270fa958a","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/d61db0e94f32ca06bd104ef261cb25b270fa958a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:36-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ecb505f637254aa07144a2913cc8a69753dea0c8","message":"feat: 平台身份重绑定 delivery-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/ecb505f637254aa07144a2913cc8a69753dea0c8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.delivery/README.md","products/juhai.delivery/acceptance/juhai.delivery.order.acceptance.mjs","products/juhai.delivery/migrations/juhai.delivery.order/20260826090000_create_orders.sql","products/juhai.delivery/migrations/juhai.delivery.order/20260826091000_create_order_events.sql","products/juhai.delivery/package.json","products/juhai.delivery/product.manifest.json","products/juhai.delivery/src/contracts.ts","products/juhai.delivery/src/fastify.ts","products/juhai.delivery/src/host.ts","products/juhai.delivery/src/index.ts","products/juhai.delivery/src/manifest.ts","products/juhai.delivery/src/nestjs.ts","products/juhai.delivery/src/order-repository.ts","products/juhai.delivery/src/tools.ts","products/juhai.delivery/src/web.tsx","products/juhai.delivery/test/os-host.runtime.test.ts","products/juhai.delivery/tsconfig.os-host.json","products/juhai.delivery/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"e6148468af42bba79b640efdc83977a38e304f6b","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/e6148468af42bba79b640efdc83977a38e304f6b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"e530220abce01ecbb9780bee6e843a4e03a72c4b","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/e530220abce01ecbb9780bee6e843a4e03a72c4b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:47:49-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"3652661600d592fcb613bfa9c99558f81faec118","message":"feat(delivery): 新增制品晋级复核\n","url":"https://gitea.g-hi.com/luoanwu/delivery-platform/commit/3652661600d592fcb613bfa9c99558f81faec118","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/delivery/artifact-advancement-planning.service.ts","docs/domain/delivery-control-blueprint.md","packages/delivery-control/package.json","packages/delivery-control/src/artifact-advancement-planner.cjs","packages/delivery-control/src/artifact-advancement-planner.d.cts","packages/delivery-control/src/artifact-advancement-planner.d.ts","packages/delivery-control/src/ci-gate-audit.mjs","packages/delivery-control/src/index.cjs","packages/delivery-control/src/index.d.ts","packages/delivery-control/test/artifact-advancement-planner.test.mjs","packages/delivery-control/test/ci-gate-audit.test.mjs","reports/runtime-acceptance.latest.json","scripts/audit-ci-gates.mjs"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","package.json","packages/contracts/src/index.ts","pnpm-lock.yaml","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","turbo.json"]},"repository":{"id":107,"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":"delivery-platform","full_name":"luoanwu/delivery-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/delivery-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/delivery-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/delivery-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/delivery-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/delivery-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-09-01T21:58:15+08:00","updated_at":"2026-09-01T21:59:47+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
|
6
|
1788279064
|
1788279840
|
0
|
1788271187
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23597
|
feat(permission): 新增权限决策规划
|
108
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
d63bc91b99a4ea62c35d0cd2368045ce54e4385c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"a58f9c47304f1983aca6ba7072f58ff5c0969f55","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/a58f9c47304f1983aca6ba7072f58ff5c0969f55","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","message":"feat: 平台身份重绑定 permission-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/eb38aefb3c40e4c9a3aa368ad1417a2f8f79035a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.permission/README.md","products/juhai.permission/acceptance/juhai.permission.order.acceptance.mjs","products/juhai.permission/migrations/juhai.permission.order/20260826090000_create_orders.sql","products/juhai.permission/migrations/juhai.permission.order/20260826091000_create_order_events.sql","products/juhai.permission/package.json","products/juhai.permission/product.manifest.json","products/juhai.permission/src/contracts.ts","products/juhai.permission/src/fastify.ts","products/juhai.permission/src/host.ts","products/juhai.permission/src/index.ts","products/juhai.permission/src/manifest.ts","products/juhai.permission/src/nestjs.ts","products/juhai.permission/src/order-repository.ts","products/juhai.permission/src/tools.ts","products/juhai.permission/src/web.tsx","products/juhai.permission/test/os-host.runtime.test.ts","products/juhai.permission/tsconfig.os-host.json","products/juhai.permission/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"4491834f55010479358d5650e9f738a394335f6f","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/4491834f55010479358d5650e9f738a394335f6f","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03eb3aee5143031086e4faf6c7c713d6fb7bde49","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/03eb3aee5143031086e4faf6c7c713d6fb7bde49","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:06-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"d63bc91b99a4ea62c35d0cd2368045ce54e4385c","message":"feat(permission): 新增权限决策规划\n","url":"https://gitea.g-hi.com/luoanwu/permission-platform/commit/d63bc91b99a4ea62c35d0cd2368045ce54e4385c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/permission/permission-decision.service.ts","docs/domain/permission-preflight-blueprint.md","packages/contracts/src/permission-decision-planner.test.ts","packages/contracts/src/permission-decision-planner.ts","packages/contracts/src/permission-preflight.test.ts","packages/contracts/src/permission-preflight.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":108,"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":"permission-platform","full_name":"luoanwu/permission-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/permission-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/permission-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/permission-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/permission-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-09-01T21:58:17+08:00","updated_at":"2026-09-01T21:59:47+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
|
6
|
1788279143
|
1788279840
|
0
|
1788271187
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23598
|
feat(workflow): 新增跨域流程规划
|
109
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
0a92bf8f8c65b738777680d5f4951d37581dda65
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"0a92bf8f8c65b738777680d5f4951d37581dda65","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"0a92bf8f8c65b738777680d5f4951d37581dda65","message":"feat(workflow): 新增跨域流程规划\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/0a92bf8f8c65b738777680d5f4951d37581dda65","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/workflow/workflow-planner.service.ts","docs/domain/workflow-definition-blueprint.md","packages/contracts/src/workflow-definition.test.ts","packages/contracts/src/workflow-definition.ts","packages/contracts/src/workflow-planner.test.ts","packages/contracts/src/workflow-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"e9ff5bd315e2caf78e583cd118695ac68763b724","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/e9ff5bd315e2caf78e583cd118695ac68763b724","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f8e52f00a19d821e073da7613bd5f57d9bf9e990","message":"feat: 平台身份重绑定 scheduler-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/f8e52f00a19d821e073da7613bd5f57d9bf9e990","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:30-07:00","added":["docs/framework-migration.md","products/juhai.scheduler/README.md","products/juhai.scheduler/acceptance/juhai.scheduler.order.acceptance.mjs","products/juhai.scheduler/migrations/juhai.scheduler.order/20260826090000_create_orders.sql","products/juhai.scheduler/migrations/juhai.scheduler.order/20260826091000_create_order_events.sql","products/juhai.scheduler/package.json","products/juhai.scheduler/product.manifest.json","products/juhai.scheduler/src/contracts.ts","products/juhai.scheduler/src/fastify.ts","products/juhai.scheduler/src/host.ts","products/juhai.scheduler/src/index.ts","products/juhai.scheduler/src/manifest.ts","products/juhai.scheduler/src/nestjs.ts","products/juhai.scheduler/src/order-repository.ts","products/juhai.scheduler/src/tools.ts","products/juhai.scheduler/src/web.tsx","products/juhai.scheduler/test/os-host.runtime.test.ts","products/juhai.scheduler/tsconfig.os-host.json","products/juhai.scheduler/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"8b2151898531ef01360cca6a7036ea7f9757cdcb","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/8b2151898531ef01360cca6a7036ea7f9757cdcb","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"6b8ef7cc0b9912f6f955aacc7a3a5ea49926aa8a","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/6b8ef7cc0b9912f6f955aacc7a3a5ea49926aa8a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:06-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"0a92bf8f8c65b738777680d5f4951d37581dda65","message":"feat(workflow): 新增跨域流程规划\n","url":"https://gitea.g-hi.com/luoanwu/scheduler-platform/commit/0a92bf8f8c65b738777680d5f4951d37581dda65","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/workflow/workflow-planner.service.ts","docs/domain/workflow-definition-blueprint.md","packages/contracts/src/workflow-definition.test.ts","packages/contracts/src/workflow-definition.ts","packages/contracts/src/workflow-planner.test.ts","packages/contracts/src/workflow-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":109,"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":"scheduler-platform","full_name":"luoanwu/scheduler-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/scheduler-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/scheduler-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/scheduler-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/scheduler-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/scheduler-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-09-01T21:58:19+08:00","updated_at":"2026-09-01T21:59:47+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
|
6
|
1788279222
|
1788280140
|
0
|
1788271187
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23599
|
feat(notification): 新增 Webhook 投递规划
|
110
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
06991c06ed232dd99a9384486146e7e119030769
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"06991c06ed232dd99a9384486146e7e119030769","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"0462d0ff032e829cb3ecc98ac2554f804b85325c","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/0462d0ff032e829cb3ecc98ac2554f804b85325c","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"043a8ade4f7129842c06118ad381026679148fd5","message":"feat: 平台身份重绑定 notification-hub(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/043a8ade4f7129842c06118ad381026679148fd5","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.notification/README.md","products/juhai.notification/acceptance/juhai.notification.order.acceptance.mjs","products/juhai.notification/migrations/juhai.notification.order/20260826090000_create_orders.sql","products/juhai.notification/migrations/juhai.notification.order/20260826091000_create_order_events.sql","products/juhai.notification/package.json","products/juhai.notification/product.manifest.json","products/juhai.notification/src/contracts.ts","products/juhai.notification/src/fastify.ts","products/juhai.notification/src/host.ts","products/juhai.notification/src/index.ts","products/juhai.notification/src/manifest.ts","products/juhai.notification/src/nestjs.ts","products/juhai.notification/src/order-repository.ts","products/juhai.notification/src/tools.ts","products/juhai.notification/src/web.tsx","products/juhai.notification/test/os-host.runtime.test.ts","products/juhai.notification/tsconfig.os-host.json","products/juhai.notification/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"ca1700973414443af423502aa79ce327d0b3c73e","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ca1700973414443af423502aa79ce327d0b3c73e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:19-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/ea9f0c7ab4826ab009880edb3a75886a5eeebcb9","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:13-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"06991c06ed232dd99a9384486146e7e119030769","message":"feat(notification): 新增 Webhook 投递规划\n","url":"https://gitea.g-hi.com/luoanwu/notification-hub/commit/06991c06ed232dd99a9384486146e7e119030769","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/notification/notification-planner.service.ts","docs/domain/notification-effect-blueprint.md","packages/contracts/src/notification-effect.test.ts","packages/contracts/src/notification-effect.ts","packages/contracts/src/webhook-delivery-planner.test.ts","packages/contracts/src/webhook-delivery-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":110,"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":"notification-hub","full_name":"luoanwu/notification-hub","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/notification-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/notification-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/notification-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/notification-hub.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:21+08:00","updated_at":"2026-09-01T21:59:48+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
|
6
|
1788279300
|
1788280140
|
0
|
1788271189
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23600
|
feat(config): 新增本地配置客户端
|
111
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
0999f3af2b5b8dccf941370c293bad77a9a27854
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"0999f3af2b5b8dccf941370c293bad77a9a27854","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"0999f3af2b5b8dccf941370c293bad77a9a27854","message":"feat(config): 新增本地配置客户端\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/0999f3af2b5b8dccf941370c293bad77a9a27854","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/configuration/configuration-snapshot.service.ts","docs/domain/feature-flag-blueprint.md","packages/contracts/src/configuration-client.test.ts","packages/contracts/src/configuration-client.ts","packages/contracts/src/feature-flag.test.ts","packages/contracts/src/feature-flag.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9b81af060da191e089249cad86b0e395c08e5f33","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/9b81af060da191e089249cad86b0e395c08e5f33","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"9c897855a37126636e0803d65d4dd5428200b040","message":"feat: 平台身份重绑定 config-flag(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/9c897855a37126636e0803d65d4dd5428200b040","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.configflag/README.md","products/juhai.configflag/acceptance/juhai.configflag.order.acceptance.mjs","products/juhai.configflag/migrations/juhai.configflag.order/20260826090000_create_orders.sql","products/juhai.configflag/migrations/juhai.configflag.order/20260826091000_create_order_events.sql","products/juhai.configflag/package.json","products/juhai.configflag/product.manifest.json","products/juhai.configflag/src/contracts.ts","products/juhai.configflag/src/fastify.ts","products/juhai.configflag/src/host.ts","products/juhai.configflag/src/index.ts","products/juhai.configflag/src/manifest.ts","products/juhai.configflag/src/nestjs.ts","products/juhai.configflag/src/order-repository.ts","products/juhai.configflag/src/tools.ts","products/juhai.configflag/src/web.tsx","products/juhai.configflag/test/os-host.runtime.test.ts","products/juhai.configflag/tsconfig.os-host.json","products/juhai.configflag/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"13e67540810f7deba818c7f0da73d1aa4f30e279","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/13e67540810f7deba818c7f0da73d1aa4f30e279","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:20-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"3a88755f584661c16c13901f9519399fdd0a3d9b","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/3a88755f584661c16c13901f9519399fdd0a3d9b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:30-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"0999f3af2b5b8dccf941370c293bad77a9a27854","message":"feat(config): 新增本地配置客户端\n","url":"https://gitea.g-hi.com/luoanwu/config-flag/commit/0999f3af2b5b8dccf941370c293bad77a9a27854","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/configuration/configuration-snapshot.service.ts","docs/domain/feature-flag-blueprint.md","packages/contracts/src/configuration-client.test.ts","packages/contracts/src/configuration-client.ts","packages/contracts/src/feature-flag.test.ts","packages/contracts/src/feature-flag.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":111,"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":"config-flag","full_name":"luoanwu/config-flag","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/config-flag/languages","html_url":"https://gitea.g-hi.com/luoanwu/config-flag","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/config-flag","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/config-flag.git","clone_url":"https://gitea.g-hi.com/luoanwu/config-flag.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:23+08:00","updated_at":"2026-09-01T21:59:49+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
|
6
|
1788279442
|
1788280140
|
0
|
1788271189
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23601
|
feat(telemetry): 新增遥测导出准入规划
|
112
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
b1fba12bb50265a049edcdefc547f92df9126793
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"b1fba12bb50265a049edcdefc547f92df9126793","compare_url":"https://gitea.g-hi.com/","commits":[{"id":"b1fba12bb50265a049edcdefc547f92df9126793","message":"feat(telemetry): 新增遥测导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/b1fba12bb50265a049edcdefc547f92df9126793","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/telemetry/telemetry-export.service.ts","docs/domain/telemetry-envelope-blueprint.md","packages/contracts/src/telemetry-envelope.test.ts","packages/contracts/src/telemetry-envelope.ts","packages/contracts/src/telemetry-export-planner.test.ts","packages/contracts/src/telemetry-export-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"03ae898131283c370d76186d5688261bec76978e","message":"chore: 迁移执行凭证 + 全量静态门禁(pnpm check)首跑证据\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/03ae898131283c370d76186d5688261bec76978e","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:44-07:00","added":["reports/baseline.json","reports/framework-migration.latest.json","reports/os-product-compat.latest.json"],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"da99b13be9a584d2bc66e023aa251ed8797ab438","message":"feat: 平台身份重绑定 observability-platform(package name / productId / 表前缀 / 命名空间;F3/F8 前置)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/da99b13be9a584d2bc66e023aa251ed8797ab438","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T21:01:37-07:00","added":["docs/framework-migration.md","products/juhai.observability/README.md","products/juhai.observability/acceptance/juhai.observability.order.acceptance.mjs","products/juhai.observability/migrations/juhai.observability.order/20260826090000_create_orders.sql","products/juhai.observability/migrations/juhai.observability.order/20260826091000_create_order_events.sql","products/juhai.observability/package.json","products/juhai.observability/product.manifest.json","products/juhai.observability/src/contracts.ts","products/juhai.observability/src/fastify.ts","products/juhai.observability/src/host.ts","products/juhai.observability/src/index.ts","products/juhai.observability/src/manifest.ts","products/juhai.observability/src/nestjs.ts","products/juhai.observability/src/order-repository.ts","products/juhai.observability/src/tools.ts","products/juhai.observability/src/web.tsx","products/juhai.observability/test/os-host.runtime.test.ts","products/juhai.observability/tsconfig.os-host.json","products/juhai.observability/vitest.os-host.config.ts"],"removed":["products/juhai.baseframework/README.md","products/juhai.baseframework/acceptance/juhai.baseframework.order.acceptance.mjs","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826090000_create_orders.sql","products/juhai.baseframework/migrations/juhai.baseframework.order/20260826091000_create_order_events.sql","products/juhai.baseframework/package.json","products/juhai.baseframework/product.manifest.json","products/juhai.baseframework/src/contracts.ts","products/juhai.baseframework/src/fastify.ts","products/juhai.baseframework/src/host.ts","products/juhai.baseframework/src/index.ts","products/juhai.baseframework/src/manifest.ts","products/juhai.baseframework/src/nestjs.ts","products/juhai.baseframework/src/order-repository.ts","products/juhai.baseframework/src/tools.ts","products/juhai.baseframework/src/web.tsx","products/juhai.baseframework/test/os-host.runtime.test.ts","products/juhai.baseframework/tsconfig.os-host.json","products/juhai.baseframework/vitest.os-host.config.ts","reports/baseline.json","reports/os-product-compat.latest.json","reports/os-product-runtime.latest.json"],"modified":["CLAUDE.md","docs/README.md","docs/domain/owner-matrix.md","docs/os-product-extension.md","kernel.products.json","package.json"]},{"id":"6d9f66f55707a5acfc1ea2f341f8bb4414fe7e01","message":"chore: 本仓 check:kernel 首跑证据(kernel profile 12 步绿)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/6d9f66f55707a5acfc1ea2f341f8bb4414fe7e01","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:49:20-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"ef351f47e74ceadccb6834d38895e674541088a4","message":"chore: 移除跨仓验收证据(fork-readiness F5,须本仓真实重跑 check:runtime/check:ui)\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/ef351f47e74ceadccb6834d38895e674541088a4","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-30T20:48:30-07:00","added":[],"removed":["reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-profile-kernel.latest.json","reports/governance-rules.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"b1fba12bb50265a049edcdefc547f92df9126793","message":"feat(telemetry): 新增遥测导出准入规划\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/b1fba12bb50265a049edcdefc547f92df9126793","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-01T06:45:35-07:00","added":["apps/api-nestjs/src/telemetry/telemetry-export.service.ts","docs/domain/telemetry-envelope-blueprint.md","packages/contracts/src/telemetry-envelope.test.ts","packages/contracts/src/telemetry-envelope.ts","packages/contracts/src/telemetry-export-planner.test.ts","packages/contracts/src/telemetry-export-planner.ts","reports/runtime-acceptance.latest.json"],"removed":[],"modified":[".github/workflows/governance.yml","CLAUDE.md","README.md","apps/api-fastify/src/routes/health.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/health/health.controller.ts","apps/api-nestjs/src/health/health.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/domain/owner-matrix.md","packages/contracts/src/index.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":112,"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":"observability-platform","full_name":"luoanwu/observability-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/observability-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/observability-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/observability-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-09-01T21:58:25+08:00","updated_at":"2026-09-01T21:59:49+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
|
6
|
1788279584
|
1788280440
|
0
|
1788271189
|
1788373230
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23604
|
Merge branch 'governance/consolidate-20260902& Merge branch 'governance/consolidate-20260902'(整合治理分支 f77fe27 + C29 手工合入 + C31–C36/G21/G30 关闭)...
|
67
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
03d95db096af66a1e7af7708a99156f194f2c702
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"205116d7e6e0ff602d1773c2ec986b02223b1e0e","after":"03d95db096af66a1e7af7708a99156f194f2c702","compare_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/compare/205116d7e6e0ff602d1773c2ec986b02223b1e0e...03d95db096af66a1e7af7708a99156f194f2c702","commits":[{"id":"03d95db096af66a1e7af7708a99156f194f2c702","message":"Merge branch 'governance/consolidate-20260902'(整合治理分支 f77fe27 + C29 手工合入 + C31–C36/G21/G30 关闭)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/03d95db096af66a1e7af7708a99156f194f2c702","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-02T16:39:01-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/web/e2e/fixtures/review-workdir/audio-probe-song/alignment.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/lyrics.txt","apps/web/e2e/fixtures/review-workdir/audio-probe-song/run_inputs.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_1.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_2.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/status.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/vocals.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/fixture-song/alignment.json","apps/web/e2e/fixtures/review-workdir/fixture-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/nonaudio-source-probe/run_inputs.json","apps/web/src/app/api/review/edits/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/audio-range.test.ts","apps/web/src/lib/audio-range.ts","apps/web/src/lib/audio-source.ts","apps/web/src/lib/export-format.test.ts","apps/web/src/lib/export-format.ts","apps/web/src/lib/manual-edits.ts","apps/web/src/lib/review-artifacts.test.ts","apps/web/src/lib/review-artifacts.ts","apps/web/src/lib/structure-mode.ts","apps/web/vitest.config.ts","config/structure-modes.v1.json","docs/domain/review-manual-timing-blueprint.md","reports/export-contract.freeze.json","reports/export-contract.latest.json","scripts/check-export-contract.mjs","scripts/download-model-assets.mjs","scripts/lib/agent-adapters.mjs","scripts/lib/provenance.mjs","scripts/normalize-model-manifest.mjs","scripts/setup-model-workers.mjs","scripts/sync-agent-skills.mjs","services/structure_lyrics/phase1/vocal_structure.py","services/structure_lyrics/tests/test_cli_declared.py","services/structure_lyrics/tests/test_ffmpeg_resolution.py","services/structure_lyrics/tests/test_vocal_structure.py","workers/demucs/README.md","复核工作台.dc.html"],"removed":["apps/web/pnpm-lock.yaml"],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".gitignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/layout.tsx","apps/web/src/app/review/page.tsx","apps/web/src/lib/song-name.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0005-use-prisma.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/contracts/package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/pipeline-tests.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-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-pipeline-tests.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_phase2.py","services/structure_lyrics/tests/test_tokenize.py","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/run_mms_fa.py","workers/structure/README.md","workers/structure/run_structure.py"]},{"id":"7a871ea9c56ab4dfbb000e4f806a3759a5e962be","message":"治理: 整合三条工作线 + 关闭 C31–C36/G21/G30 + 手工合入 C29(第二台机器 runtime 93 / ui 12 首绿)\n\n整合:本分支基于 origin/governance/adversarial-audit-fixes-20260728(f77fe27),叠加\n2026-08-30 本地模型可移植性工作(models:download / models:verify / models:setup-workers /\nmodels:normalize-manifest;manifest 钉 revision 并剔除 .cache 条目;demucs 捆绑 imageio-ffmpeg;\nstructure worker HF_MODULES_CACHE),并按「不另立第二份查找」手工合入\nclaude/clever-morse-0c9e45(20f1c2e,C29):export-format.ts 纯函数层 + vitest,\nreview-paths.ts 收口进既有 review-artifacts.ts(resolveArtifactPath 泛化,audio 路由同用)。\n\n关闭:\n- C31 治理聚合器 fail-open:runGate() 要求子门禁报告本轮新鲜/可解析/带指标,否则 [gate-failed] 红;\n 禁 `?? -1`/`?? 0` 折算。负向:写报告前 throw、exit 0 不写报告 均精确红\n- C32 模型资产入棘轮(违规只降、资产/文件数只升)+ 磁盘→manifest 未登记即红 + 可复现下载 revision∨uri\n- C33 docs-truth 扩到全部面向人的文档与无反引号 prose,八类新断言;models/ 按 manifest+git 判定\n (防干净检出必红,同时覆盖 G30);首跑 60 处漂移全部逐条订正\n- C34 ffmpeg 解析单源 resolve_ffmpeg(系统 PATH→imageio-ffmpeg),check:pipeline 干净机器不再必红,\n pytest 地板 139→143\n- C35 /api/review/audio 无 Range 致跟播死锁:lib/audio-range.ts 单源,两条音频路由共用,6 例 vitest\n- C36 验收链宿主机污染四连:prisma:generate --concurrency=1 + 验收前置 prisma-generate;脚本钉空\n NEXT_PUBLIC_API_URL/AUTH_TOKEN;删多余 apps/web/pnpm-lock.yaml;Playwright --disable-audio-output\n- G21 多代理适配器同源:.claude/skills 唯一真源,sync:agent-skills 生成 .agents/skills,\n check:governance-docs 比对(缺失/多出/漂移即红);幽灵 PROJECT-PROFILE 引用与假调用文案订正\n- G30 由 C33 覆盖关闭\n\n证据(本地工作区,dirty 状态生成):pnpm check exit 0;check:pipeline 143/143;\ncheck:runtime 93/93(testsPassed 地板 56→93,含 apps/web vitest 37 例);check:ui 12/12\n(UI_WEB_PORT=3141 / UI_API_PORT=3247);MODEL_ASSETS_FULL_HASH=1 42 文件全量哈希绿;\nown-tests 14 / own-test-cases 106。所有负向测试见 docs/governance-experience.md 各条。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/7a871ea9c56ab4dfbb000e4f806a3759a5e962be","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-02T16:38:59-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/web/src/lib/audio-range.test.ts","apps/web/src/lib/audio-range.ts","apps/web/src/lib/export-format.test.ts","apps/web/src/lib/export-format.ts","apps/web/src/lib/review-artifacts.test.ts","apps/web/vitest.config.ts","scripts/download-model-assets.mjs","scripts/lib/agent-adapters.mjs","scripts/normalize-model-manifest.mjs","scripts/setup-model-workers.mjs","scripts/sync-agent-skills.mjs","services/structure_lyrics/tests/test_ffmpeg_resolution.py","workers/demucs/README.md"],"removed":["apps/web/pnpm-lock.yaml"],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md","CLAUDE.md","README.md","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/review-artifacts.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0005-use-prisma.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/pipeline-tests.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-docs-truth.mjs","scripts/check-governance-docs.mjs","scripts/check-model-assets.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/vocal_structure.py","services/structure_lyrics/requirements.txt","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/structure/README.md","workers/structure/run_structure.py"]},{"id":"f77fe276fc4f6336bb58132bef8e01e83b4c9ea1","message":"fix: 对抗验收 C30——键口径双源静默失败 / 导出与手改不同源 / 会计头幽灵声称;并补视图精度\n\n对刚落地的手改写链做对抗性验收(try-to-break-it),当场抓到三处、全部修复并接入回归:\n- C30①【数据完整性】编辑键口径双源:校验用 Number(\"01\")=1 找得到行、应用用\n String(line_id)=\"1\" 查不到该键 → \"01\" 判合法却不落盘(响应 ok:true/manualLines:0);\n 该行本已有手改时更会被 apply 当\"缺席\"**静默还原**(实测本意改 end=14.5、磁盘回退 13.2)。\n 修法:键统一 ^(0|[1-9]\\d*)$ fail closed,校验与应用共用同一把钥匙\n- C30②【双出口矛盾】export 只查 \u003csong\u003e_p2/ 而手改按两级查找写入 → cli 直跑产出的\n \u003csong\u003e/line_times.json 会「页面看得到手改、导出读不到」。修法:export 收口\n resolveLineTimesPath(与读/写路由同源)\n- C30③【幽灵声称】蓝图两处写 X-Export-Manual-Edits「M1 随做」实则从未实现 → 真加会计头\n- 视图精度(用户新需求):刻度加亚秒档(短歌 16× 从 0 个标签 → 56 个 0.1s 刻度)+\n 标签带小数;zoom-to-line 改「最接近目标占比 1/3」(长拖腔行 19%→38%);字条加刻度栅格\n + 走带上画字条窗口投影(两个时间视图互相定位);读数精度随每像素秒数自适应到 ms 级;\n 字条字块同步逐字高亮 + 播放头;修字条头部窄栏文案与读数交错换行\n- 验收:check:ui 12 用例全绿(新增导出一致性、走带精度两例 + 非规范化键负向断言),\n 地板 ui 10→12、ownTestCases 66→69;pnpm check 静态全链绿;负向测试实证:\n 退回键守卫缺陷形态即精确红在该断言、恢复复绿\n- 判读纪律实证入册:后台通知 exit code 被管道 tail 吞掉(通知 exit 0 / 报告 failed),\n 只认 runner report status 或显式 set -o pipefail\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/f77fe276fc4f6336bb58132bef8e01e83b4c9ea1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-08T11:32:01-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/layout.tsx","apps/web/src/app/review/page.tsx","apps/web/src/lib/manual-edits.ts","docs/domain/review-manual-timing-blueprint.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"3fdb4053791bac065674586a5173a8a41aa5a0c4","message":"feat: 复核工作台手改写链 M1——直改产物+留档+拖动/打点/快捷键;走带播放链路补齐机器验收\n\n- 手改(ManualTimingEdit,2026-08-08 六项拍板落地):编辑态(E)走带行区间双手柄拖动、\n 字时间编辑条(局部波形+字块拖动+联动边界+播放同步逐字高亮与播放头)、G29 null 字赋时、\n T 逐字打点(回补 100ms)、[ ] ; ' , . I O 微调与 ⌘Z/⌘S;保存=整卷 PUT 直改\n line_times.json + manual.original 留档(沿 clamped_from 纪律),指纹乐观锁 409 +\n 执行中 409(文件双写者显式登记);重跑 fail closed(409 MANUAL_EDITS_PRESENT →\n confirmDiscardManualEdits)+ 自动备份 .manual-backups/(永不自动套用);reconcile 单源\n lib/manual-edits.ts、产物定位单源 lib/review-artifacts.ts(读/写/守卫共用 _p2 优先);\n 蓝图 docs/domain/review-manual-timing-blueprint.md + owner-matrix 登记\n- 走带整曲播放链路(前一轮未提交部分随本提交入库):/api/review/full-audio(HTTP Range +\n 扩展名白名单,C28 收口)+ audio-source 单源 + audio-probe fixture + 真波形/seek/跟播/\n 双音源互斥 e2e + 深色三栏工作台改版余量\n- 验收:check:ui 10 用例全绿(新增手改用例:真实鼠标拖字块+真实键盘 [+落盘留档回读+\n 重跑 409+还原清 manual+指纹/非法/穿越负向矩阵),地板 ui 7→10、ownTestCases 62→66;\n pnpm check 静态全链绿;备份路径 live 实证(confirm→备份含手改值)\n- 教训入册(G18):浏览器面板按键注入不带 e.code,快捷键实测须真键盘/Playwright;\n 拖动手势收 buttons===0 悬停移动防\"粘手\"(pointerup 窗外丢失实锤)\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/3fdb4053791bac065674586a5173a8a41aa5a0c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-08T11:10:41-07:00","added":["apps/web/e2e/fixtures/review-workdir/audio-probe-song/alignment.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/lyrics.txt","apps/web/e2e/fixtures/review-workdir/audio-probe-song/run_inputs.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_1.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_2.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/status.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/vocals.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/nonaudio-source-probe/run_inputs.json","apps/web/src/app/api/review/edits/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/audio-source.ts","apps/web/src/lib/manual-edits.ts","apps/web/src/lib/review-artifacts.ts","docs/domain/review-manual-timing-blueprint.md","复核工作台.dc.html"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/review/page.tsx","apps/web/tsconfig.json","docs/domain/owner-matrix.md","packages/contracts/package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"88df9fddc74d13ebbc389e8ca265c8953c06bc22","message":"治理: /review 首个自动化验收——fixture 注入 + G29 null 字芯片用例,UI 地板 6→7\n\n- REVIEW_WORKDIR 注入点 + 仓内确定性 fixture(fixture-song,含 G29 null 时间字)\n- check:ui 第 7 例:字级时间面板渲染 / null 字禁用虚线芯片(title 无对齐证据)/\n 有证据字可点击试听\n- 负向测试:fixture 缺失整轮红且 e2e-results 显示仅新用例 ok:false(其余 6 绿)\n- 地板 uiTestsPassed 6→7、ownTestCases 62→63;报告绑定 gitSha 348939f5\n- 边界如实记:执行链路(C24 重跑刷新)仍无自动化,fixture 用例覆盖不到\n\ncheck / check:ui(7) 本机全绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/88df9fddc74d13ebbc389e8ca265c8953c06bc22","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-01T22:14:08-07:00","added":["apps/web/e2e/fixtures/review-workdir/fixture-song/alignment.json","apps/web/e2e/fixtures/review-workdir/fixture-song_p2/line_times.json"],"removed":[],"modified":["CLAUDE.md","apps/web/e2e/acceptance.spec.ts","docs/governance-experience.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/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/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"03d95db096af66a1e7af7708a99156f194f2c702","message":"Merge branch 'governance/consolidate-20260902'(整合治理分支 f77fe27 + C29 手工合入 + C31–C36/G21/G30 关闭)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/03d95db096af66a1e7af7708a99156f194f2c702","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-02T16:39:01-07:00","added":[".agents/skills/business-module-intake/SKILL.md","apps/web/e2e/fixtures/review-workdir/audio-probe-song/alignment.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/lyrics.txt","apps/web/e2e/fixtures/review-workdir/audio-probe-song/run_inputs.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_1.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/segments/vocal_2.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song/status.json","apps/web/e2e/fixtures/review-workdir/audio-probe-song/vocals.wav","apps/web/e2e/fixtures/review-workdir/audio-probe-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/fixture-song/alignment.json","apps/web/e2e/fixtures/review-workdir/fixture-song_p2/line_times.json","apps/web/e2e/fixtures/review-workdir/nonaudio-source-probe/run_inputs.json","apps/web/src/app/api/review/edits/route.ts","apps/web/src/app/api/review/full-audio/route.ts","apps/web/src/lib/audio-range.test.ts","apps/web/src/lib/audio-range.ts","apps/web/src/lib/audio-source.ts","apps/web/src/lib/export-format.test.ts","apps/web/src/lib/export-format.ts","apps/web/src/lib/manual-edits.ts","apps/web/src/lib/review-artifacts.test.ts","apps/web/src/lib/review-artifacts.ts","apps/web/src/lib/structure-mode.ts","apps/web/vitest.config.ts","config/structure-modes.v1.json","docs/domain/review-manual-timing-blueprint.md","reports/export-contract.freeze.json","reports/export-contract.latest.json","scripts/check-export-contract.mjs","scripts/download-model-assets.mjs","scripts/lib/agent-adapters.mjs","scripts/lib/provenance.mjs","scripts/normalize-model-manifest.mjs","scripts/setup-model-workers.mjs","scripts/sync-agent-skills.mjs","services/structure_lyrics/phase1/vocal_structure.py","services/structure_lyrics/tests/test_cli_declared.py","services/structure_lyrics/tests/test_ffmpeg_resolution.py","services/structure_lyrics/tests/test_vocal_structure.py","workers/demucs/README.md","复核工作台.dc.html"],"removed":["apps/web/pnpm-lock.yaml"],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/frontend-view-react/references/view-templates.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".claude/agents/acceptance-runner.md",".claude/launch.json",".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/frontend-view-react/references/view-templates.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/zustand-store/SKILL.md",".github/pull_request_template.md",".gitignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/app/api/review/audio/route.ts","apps/web/src/app/api/review/browse/route.ts","apps/web/src/app/api/review/export/route.ts","apps/web/src/app/api/review/route.ts","apps/web/src/app/api/review/run/route.ts","apps/web/src/app/layout.tsx","apps/web/src/app/review/page.tsx","apps/web/src/lib/song-name.ts","apps/web/tailwind.config.ts","apps/web/tsconfig.json","docs/README.md","docs/adr/0001-use-typescript-fullstack.md","docs/adr/0005-use-prisma.md","docs/adr/0008-monorepo-pnpm-turborepo.md","docs/adr/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/structure-lyrics-phase1-blueprint.md","docs/governance-experience.md","docs/migration-notes.md","docs/standards/api-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","models/model-assets.v1.json","package.json","packages/contracts/package.json","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/model-assets.latest.json","reports/model-evidence/htdemucs-smoke.latest.json","reports/model-evidence/mms-fa-smoke.latest.json","reports/model-evidence/qwen3-asr-smoke.latest.json","reports/model-evidence/structure-smoke.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/pipeline-tests.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-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-model-assets.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-pipeline-tests.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","services/structure_lyrics/README.md","services/structure_lyrics/phase1/asr.py","services/structure_lyrics/phase1/audio.py","services/structure_lyrics/phase1/cli.py","services/structure_lyrics/phase2/pipeline.py","services/structure_lyrics/phase2/refine.py","services/structure_lyrics/requirements.txt","services/structure_lyrics/run_song.py","services/structure_lyrics/tests/test_language.py","services/structure_lyrics/tests/test_phase2.py","services/structure_lyrics/tests/test_tokenize.py","workers/demucs/requirements_demucs.txt","workers/demucs/run_separate.py","workers/mms-fa/run_mms_fa.py","workers/structure/README.md","workers/structure/run_structure.py"]},"repository":{"id":67,"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":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2585,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics/languages","html_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/songformer-structure-lyrics.git","clone_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-28T14:19:19+08:00","updated_at":"2026-09-03T07:39:02+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
|
5
|
1788392344
|
1788392386
|
0
|
1788392344
|
1788392386
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23628
|
fix(supply-chain): C245 fast-uri override 3.1.5→3. fix(supply-chain): C245 fast-uri override 3.1.5→3.1.6——当日新增 4 个 high 令 c48ff88 的依赖审计步骤红(run 33661658456)...
|
76
|
5
|
governance.yml
|
30
|
5
|
0
|
refs/heads/main
|
7937b2adf8e2349bf89ebd91e94baac5cc2a46dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c48ff8853fb96ecd420890a0e933711dc5fa6a1e","after":"7937b2adf8e2349bf89ebd91e94baac5cc2a46dd","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/c48ff8853fb96ecd420890a0e933711dc5fa6a1e...7937b2adf8e2349bf89ebd91e94baac5cc2a46dd","commits":[{"id":"7937b2adf8e2349bf89ebd91e94baac5cc2a46dd","message":"fix(supply-chain): C245 fast-uri override 3.1.5→3.1.6——当日新增 4 个 high 令 c48ff88 的依赖审计步骤红(run 33661658456)\n\n- root pnpm.overrides fast-uri 3.1.6 + 锁文件重建;本机 pnpm audit --prod --audit-level high 0 high(3 moderate 可见)\n- 快照锚点刷新至 c48ff88;ci-gate/G14/快照三处同源记录 run 33661658456 红因;收尾清单新增推送前 audit 自检\n- 静态门禁整轮重跑绿,报告随提交刷新\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/7937b2adf8e2349bf89ebd91e94baac5cc2a46dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-03T16:08:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","package.json","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"7937b2adf8e2349bf89ebd91e94baac5cc2a46dd","message":"fix(supply-chain): C245 fast-uri override 3.1.5→3.1.6——当日新增 4 个 high 令 c48ff88 的依赖审计步骤红(run 33661658456)\n\n- root pnpm.overrides fast-uri 3.1.6 + 锁文件重建;本机 pnpm audit --prod --audit-level high 0 high(3 moderate 可见)\n- 快照锚点刷新至 c48ff88;ci-gate/G14/快照三处同源记录 run 33661658456 红因;收尾清单新增推送前 audit 自检\n- 静态门禁整轮重跑绿,报告随提交刷新\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/7937b2adf8e2349bf89ebd91e94baac5cc2a46dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-03T16:08:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","package.json","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/product-acceptance.latest.json","reports/product-migrations.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":76,"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":"digital-employee-os","full_name":"luoanwu/digital-employee-os","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":79149,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-09-03T01:32:02+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
|
58
|
1788476931
|
1788478715
|
0
|
1788476929
|
1788478715
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23673
|
fix(brand): make text model optimization discovera fix(brand): make text model optimization discoverable and easy to save...
|
57
|
5
|
governance.yml
|
44
|
5
|
0
|
refs/heads/main
|
044b793341d70fa3cc0131eb189e17b5a956a65d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5c5f53596f9a2708d0c44259cf34ec7b9a42c13d","after":"044b793341d70fa3cc0131eb189e17b5a956a65d","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/5c5f53596f9a2708d0c44259cf34ec7b9a42c13d...044b793341d70fa3cc0131eb189e17b5a956a65d","commits":[{"id":"044b793341d70fa3cc0131eb189e17b5a956a65d","message":"fix(brand): make text model optimization discoverable and easy to save\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/044b793341d70fa3cc0131eb189e17b5a956a65d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T06:46:18-07:00","added":["docs/governance/log/2026-09-07-master-prompt-optimization.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/MasterPromptEditor.tsx","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"044b793341d70fa3cc0131eb189e17b5a956a65d","message":"fix(brand): make text model optimization discoverable and easy to save\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/044b793341d70fa3cc0131eb189e17b5a956a65d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-07T06:46:18-07:00","added":["docs/governance/log/2026-09-07-master-prompt-optimization.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/MasterPromptEditor.tsx","reports/admin-mobile.png","reports/content-detail.brief-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":625596,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-07T20:55:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
1788788800
|
1788788973
|
0
|
1788788800
|
1788788973
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23691
|
fix(script): allow choosing still image aspect rat fix(script): allow choosing still image aspect ratio...
|
57
|
5
|
governance.yml
|
62
|
5
|
0
|
refs/heads/main
|
6c1615de2390282582b75f59b84c9166a124df69
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"167f58f7b2ae134dd6424b1e6dc56c31f5fa5418","after":"6c1615de2390282582b75f59b84c9166a124df69","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/167f58f7b2ae134dd6424b1e6dc56c31f5fa5418...6c1615de2390282582b75f59b84c9166a124df69","commits":[{"id":"6c1615de2390282582b75f59b84c9166a124df69","message":"fix(script): allow choosing still image aspect ratio\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6c1615de2390282582b75f59b84c9166a124df69","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T08:23:09-07:00","added":["docs/governance/log/2026-09-08-still-aspect-ratio.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/ShotBoard.tsx","apps/web/src/store/useCreationPrefsStore.ts"]}],"total_commits":0,"head_commit":{"id":"6c1615de2390282582b75f59b84c9166a124df69","message":"fix(script): allow choosing still image aspect ratio\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6c1615de2390282582b75f59b84c9166a124df69","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T08:23:09-07:00","added":["docs/governance/log/2026-09-08-still-aspect-ratio.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/ShotBoard.tsx","apps/web/src/store/useCreationPrefsStore.ts"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":637173,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-08T23:07:51+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
|
1788881769
|
1788881829
|
0
|
1788881767
|
1788881829
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23697
|
docs: include storyboard frame acceptance and clea docs: include storyboard frame acceptance and clean preview config...
|
57
|
5
|
governance.yml
|
68
|
5
|
0
|
refs/heads/main
|
9bc52c04bf868bd0a17006b25b7245def4a5502c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cceb79f06e0665051bdb067567dfc0eb772b7586","after":"9bc52c04bf868bd0a17006b25b7245def4a5502c","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/cceb79f06e0665051bdb067567dfc0eb772b7586...9bc52c04bf868bd0a17006b25b7245def4a5502c","commits":[{"id":"9bc52c04bf868bd0a17006b25b7245def4a5502c","message":"docs: include storyboard frame acceptance and clean preview config\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9bc52c04bf868bd0a17006b25b7245def4a5502c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:14:14-07:00","added":["reports/storyboard-prompt-frames-2026-09-08/README.md"],"removed":[],"modified":["apps/web/tsconfig.json"]},{"id":"35744aceae6a890a7a5236d32dc27e7591155dbe","message":"docs(shijie): record local integration and verification scope\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/35744aceae6a890a7a5236d32dc27e7591155dbe","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:13:46-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-shijie-scene-build.md"]},{"id":"f847ed0c7f7d1bf1829b20470114508744ca0f0d","message":"Merge remote-tracking branch 'origin/main'\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f847ed0c7f7d1bf1829b20470114508744ca0f0d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:13:25-07:00","added":[],"removed":[],"modified":[]},{"id":"49296cbc7bc60faf9b58f7cb75b2f8761e30a168","message":"feat: add AI brand naming and storyboard frame generation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/49296cbc7bc60faf9b58f7cb75b2f8761e30a168","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:13:25-07:00","added":["apps/api-fastify/test/brand-naming.test.ts","apps/api-nestjs/test/brand-naming.test.ts","apps/api-nestjs/test/storyboard-frame-admission.test.ts","apps/web/src/components/material-factory/BrandNamingAssistant.tsx","apps/web/src/components/material-factory/StoryboardFrameGeneration.tsx","docs/governance/log/2026-09-08-shijie-scene-build.md","packages/contracts/src/brand-naming.test.ts","packages/contracts/src/brand-naming.ts","packages/contracts/src/shijie-generation.test.ts","packages/contracts/src/storyboard-frame.test.ts","packages/contracts/src/storyboard-frame.ts","reports/brand-naming-2026-09-08/README.md","reports/brand-naming-2026-09-08/candidates-1440.png","reports/brand-naming-2026-09-08/candidates-390.png","reports/brand-naming-2026-09-08/ui-results.json","reports/shijie-scene-build-2026-09-08/README.md","reports/shijie-scene-build-2026-09-08/domain.json","reports/shijie-scene-build-2026-09-08/fastify-http.json","reports/shijie-scene-build-2026-09-08/initial-ui-assertion.json","reports/shijie-scene-build-2026-09-08/initial-ui-receipt.json","reports/shijie-scene-build-2026-09-08/initial-ui-reentry.json","reports/shijie-scene-build-2026-09-08/nestjs-http.json","reports/shijie-scene-build-2026-09-08/ui.json","reports/storyboard-model-assets-2026-09-08/README.md","scripts/check-brand-naming-ui.cjs","scripts/check-shijie-generation-ui.cjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/creative-project/creative-project.service.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/shijie.integration.test.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/shijie.integration.test.ts","apps/web/src/components/material-factory/BrandLogoEditor.tsx","apps/web/src/components/material-factory/StoryboardAssetGeneration.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/shijie/shijie.module.css","apps/web/src/lib/api.ts","packages/contracts/src/creative-project.ts","packages/contracts/src/index.ts","packages/contracts/src/shijie.ts","packages/contracts/src/storyboard-image.ts","packages/shijie-domain/src/domain.test.ts","packages/shijie-domain/src/index.ts","reports/contract-consumers.latest.json","reports/module-boundary.latest.json","reports/validation-source.latest.json"]},{"id":"77cccc86ab4aab65d12a959d4075ea27e4a1d697","message":"feat(shijie): refine scoped scene generation and creation guidance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/77cccc86ab4aab65d12a959d4075ea27e4a1d697","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:12:59-07:00","added":["docs/governance/log/2026-09-08-shijie-scene-build.md","packages/contracts/src/shijie-generation.test.ts","reports/shijie-scene-build-2026-09-08/README.md","reports/shijie-scene-build-2026-09-08/domain.json","reports/shijie-scene-build-2026-09-08/fastify-http.json","reports/shijie-scene-build-2026-09-08/initial-ui-assertion.json","reports/shijie-scene-build-2026-09-08/initial-ui-receipt.json","reports/shijie-scene-build-2026-09-08/initial-ui-reentry.json","reports/shijie-scene-build-2026-09-08/nestjs-http.json","reports/shijie-scene-build-2026-09-08/ui.json","scripts/check-shijie-generation-ui.cjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/test/shijie.integration.test.ts","apps/api-nestjs/test/shijie.integration.test.ts","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/shijie/shijie.module.css","packages/contracts/src/shijie.ts","packages/shijie-domain/src/domain.test.ts","packages/shijie-domain/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"9bc52c04bf868bd0a17006b25b7245def4a5502c","message":"docs: include storyboard frame acceptance and clean preview config\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9bc52c04bf868bd0a17006b25b7245def4a5502c","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:14:14-07:00","added":["reports/storyboard-prompt-frames-2026-09-08/README.md"],"removed":[],"modified":["apps/web/tsconfig.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":642842,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T01:03:25+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
|
1788887659
|
1788887683
|
0
|
1788887658
|
1788887683
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23700
|
docs(release): record verified r47 content context docs(release): record verified r47 content context deployment...
|
57
|
5
|
governance.yml
|
71
|
5
|
0
|
refs/heads/main
|
418ccc6ec96978291b70410e513352fce889fcc3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"611b2f4355750ebdc232cefb083b58aaf2fad573","after":"418ccc6ec96978291b70410e513352fce889fcc3","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/611b2f4355750ebdc232cefb083b58aaf2fad573...418ccc6ec96978291b70410e513352fce889fcc3","commits":[{"id":"418ccc6ec96978291b70410e513352fce889fcc3","message":"docs(release): record verified r47 content context deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/418ccc6ec96978291b70410e513352fce889fcc3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:19:21-07:00","added":["docs/releases/2026-09-08-r47.md","reports/content-release-2026-09-08/summary.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-content-main-merge.md","docs/releases/current.md","reports/content-context-2026-09-08/README.md"]}],"total_commits":0,"head_commit":{"id":"418ccc6ec96978291b70410e513352fce889fcc3","message":"docs(release): record verified r47 content context deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/418ccc6ec96978291b70410e513352fce889fcc3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:19:21-07:00","added":["docs/releases/2026-09-08-r47.md","reports/content-release-2026-09-08/summary.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-content-main-merge.md","docs/releases/current.md","reports/content-context-2026-09-08/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":643500,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T01:16:57+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
|
1788888071
|
1788888089
|
0
|
1788888070
|
1788888089
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23701
|
fix(storyboard): align scene capacity with full st fix(storyboard): align scene capacity with full storyboard size...
|
57
|
5
|
governance.yml
|
72
|
5
|
0
|
refs/heads/main
|
168b2fe3238a21399e8d8f306d35b21e0f06bcde
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"418ccc6ec96978291b70410e513352fce889fcc3","after":"168b2fe3238a21399e8d8f306d35b21e0f06bcde","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/418ccc6ec96978291b70410e513352fce889fcc3...168b2fe3238a21399e8d8f306d35b21e0f06bcde","commits":[{"id":"168b2fe3238a21399e8d8f306d35b21e0f06bcde","message":"fix(storyboard): align scene capacity with full storyboard size\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/168b2fe3238a21399e8d8f306d35b21e0f06bcde","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:21:18-07:00","added":["docs/governance/log/2026-09-08-storyboard-scene-limit.md","reports/storyboard-scene-limit-2026-09-08/README.md"],"removed":[],"modified":["apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/ui.tsx","apps/web/src/lib/api-error-message.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/storyboard-llm.test.ts","packages/contracts/src/storyboard-llm.ts","packages/contracts/src/storyboard.ts","scripts/api-error-message.test.mjs"]}],"total_commits":0,"head_commit":{"id":"168b2fe3238a21399e8d8f306d35b21e0f06bcde","message":"fix(storyboard): align scene capacity with full storyboard size\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/168b2fe3238a21399e8d8f306d35b21e0f06bcde","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:21:18-07:00","added":["docs/governance/log/2026-09-08-storyboard-scene-limit.md","reports/storyboard-scene-limit-2026-09-08/README.md"],"removed":[],"modified":["apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/ui.tsx","apps/web/src/lib/api-error-message.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/storyboard-llm.test.ts","packages/contracts/src/storyboard-llm.ts","packages/contracts/src/storyboard.ts","scripts/api-error-message.test.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":643521,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T01:21:10+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
|
1788888091
|
1788888126
|
0
|
1788888089
|
1788888126
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23704
|
fix(content): add screenplay creation purpose
|
57
|
5
|
governance.yml
|
75
|
5
|
0
|
refs/heads/main
|
82dacee9bc5e568fe9188bf749b5e2cb715cb052
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"757223e09d69931cefcf102e3604406ebcd24ae1","after":"82dacee9bc5e568fe9188bf749b5e2cb715cb052","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/757223e09d69931cefcf102e3604406ebcd24ae1...82dacee9bc5e568fe9188bf749b5e2cb715cb052","commits":[{"id":"82dacee9bc5e568fe9188bf749b5e2cb715cb052","message":"fix(content): add screenplay creation purpose\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/82dacee9bc5e568fe9188bf749b5e2cb715cb052","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:30:51-07:00","added":["docs/governance/log/2026-09-08-screenplay-purpose.md","reports/screenplay-purpose-2026-09-08/README.md"],"removed":[],"modified":["packages/contracts/src/content.ts"]}],"total_commits":0,"head_commit":{"id":"82dacee9bc5e568fe9188bf749b5e2cb715cb052","message":"fix(content): add screenplay creation purpose\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/82dacee9bc5e568fe9188bf749b5e2cb715cb052","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T10:30:51-07:00","added":["docs/governance/log/2026-09-08-screenplay-purpose.md","reports/screenplay-purpose-2026-09-08/README.md"],"removed":[],"modified":["packages/contracts/src/content.ts"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":643642,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T01:29:19+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
|
1788888670
|
1788888756
|
0
|
1788888669
|
1788888756
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23719
|
Merge branch 'main' into feature/storyboar Merge branch 'main' into feature/storyboard-video-regenerate...
|
57
|
5
|
governance.yml
|
90
|
5
|
0
|
refs/heads/main
|
d644831535615b63a052ee56d2cb0287cb3ee632
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4d09042299bc23d6e8e26c8e981f1a685845aac8","after":"d644831535615b63a052ee56d2cb0287cb3ee632","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/4d09042299bc23d6e8e26c8e981f1a685845aac8...d644831535615b63a052ee56d2cb0287cb3ee632","commits":[{"id":"d644831535615b63a052ee56d2cb0287cb3ee632","message":"Merge branch 'main' into feature/storyboard-video-regenerate\n\n# Conflicts:\n#\treports/contract-consumers.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d644831535615b63a052ee56d2cb0287cb3ee632","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:30:28-07:00","added":["docs/releases/2026-09-08-r52.md","docs/releases/2026-09-08-trends1.md","reports/industry-trends-2026-09-08/deployment.json","reports/video-batch-pause-2026-09-08/backup-verification.json","reports/video-batch-pause-2026-09-08/browser-verification.json","reports/video-batch-pause-2026-09-08/deployed-verify.json","reports/video-batch-pause-2026-09-08/deployment.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-industry-trends.md","docs/governance/log/2026-09-08-video-batch-pause.md","docs/releases/current.md","reports/video-batch-pause-2026-09-08/README.md"]},{"id":"ac69fc0a2b281d7d4d906ed14ab0ead60cfd9b57","message":"test(video): record full fixed-source regeneration acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ac69fc0a2b281d7d4d906ed14ab0ead60cfd9b57","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:29:51-07:00","added":["reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","reports/video-regenerate-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-regenerate.md","reports/admin-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png"]},{"id":"881988325479f24f280c78eafcf0e069b0f99e56","message":"test(video): align regression fixture naming with project glossary\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/881988325479f24f280c78eafcf0e069b0f99e56","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:23:04-07:00","added":[],"removed":[],"modified":["scripts/lib/video-regeneration-ui-acceptance.mjs"]},{"id":"ffd52de63c055c0ca566bee4e2cbbff5437b0de5","message":"fix(video): keep polling claimed storyboard jobs\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ffd52de63c055c0ca566bee4e2cbbff5437b0de5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:22:16-07:00","added":[],"removed":[],"modified":["apps/web/src/components/material-factory/StoryboardStudio.tsx"]},{"id":"86830e5df55d0fe112701500b70b086c11a64774","message":"test(video): verify regeneration through real API and retained MP4 downloads\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/86830e5df55d0fe112701500b70b086c11a64774","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:22:06-07:00","added":[],"removed":[],"modified":["reports/video-regenerate-2026-09-08/README.md","scripts/lib/video-regeneration-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"d644831535615b63a052ee56d2cb0287cb3ee632","message":"Merge branch 'main' into feature/storyboard-video-regenerate\n\n# Conflicts:\n#\treports/contract-consumers.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/material-review-concurrency-guard.latest.json\n#\treports/migrations.latest.json\n#\treports/module-boundary.latest.json\n#\treports/naming.latest.json\n#\treports/order-concurrency-guard.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d644831535615b63a052ee56d2cb0287cb3ee632","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:30:28-07:00","added":["docs/releases/2026-09-08-r52.md","docs/releases/2026-09-08-trends1.md","reports/industry-trends-2026-09-08/deployment.json","reports/video-batch-pause-2026-09-08/backup-verification.json","reports/video-batch-pause-2026-09-08/browser-verification.json","reports/video-batch-pause-2026-09-08/deployed-verify.json","reports/video-batch-pause-2026-09-08/deployment.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-industry-trends.md","docs/governance/log/2026-09-08-video-batch-pause.md","docs/releases/current.md","reports/video-batch-pause-2026-09-08/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":669068,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T02:27:16+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
|
1788892248
|
1788892538
|
0
|
1788892247
|
1788892538
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23720
|
docs(release): record verified storyboard video re docs(release): record verified storyboard video regeneration deployment...
|
57
|
5
|
governance.yml
|
91
|
5
|
0
|
refs/heads/main
|
df0737c36336ba0058da7486c943e56fbe7e4b26
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d644831535615b63a052ee56d2cb0287cb3ee632","after":"df0737c36336ba0058da7486c943e56fbe7e4b26","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/d644831535615b63a052ee56d2cb0287cb3ee632...df0737c36336ba0058da7486c943e56fbe7e4b26","commits":[{"id":"df0737c36336ba0058da7486c943e56fbe7e4b26","message":"docs(release): record verified storyboard video regeneration deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/df0737c36336ba0058da7486c943e56fbe7e4b26","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:35:30-07:00","added":["docs/releases/2026-09-08-video-regen1.md","reports/video-regenerate-2026-09-08/backup-verification.json","reports/video-regenerate-2026-09-08/browser-verification.json","reports/video-regenerate-2026-09-08/deployed-verify.json","reports/video-regenerate-2026-09-08/deployment.json","reports/video-regenerate-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-regenerate.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-regenerate-2026-09-08/README.md"]}],"total_commits":0,"head_commit":{"id":"df0737c36336ba0058da7486c943e56fbe7e4b26","message":"docs(release): record verified storyboard video regeneration deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/df0737c36336ba0058da7486c943e56fbe7e4b26","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T11:35:30-07:00","added":["docs/releases/2026-09-08-video-regen1.md","reports/video-regenerate-2026-09-08/backup-verification.json","reports/video-regenerate-2026-09-08/browser-verification.json","reports/video-regenerate-2026-09-08/deployed-verify.json","reports/video-regenerate-2026-09-08/deployment.json","reports/video-regenerate-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-regenerate.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-regenerate-2026-09-08/README.md"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":674532,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T02:30:47+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
|
3
|
0
|
1788892662
|
0
|
1788892539
|
1788892662
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23726
|
test(video-edit): verify final professional post-p test(video-edit): verify final professional post-production release...
|
57
|
5
|
governance.yml
|
97
|
5
|
0
|
refs/heads/main
|
a8068fca74ef55e4907e8340471ab303fe78a3dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7ceb1b0680b6a83b3830afcc0efbb49501e58c5f","after":"a8068fca74ef55e4907e8340471ab303fe78a3dd","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/7ceb1b0680b6a83b3830afcc0efbb49501e58c5f...a8068fca74ef55e4907e8340471ab303fe78a3dd","commits":[{"id":"a8068fca74ef55e4907e8340471ab303fe78a3dd","message":"test(video-edit): verify final professional post-production release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a8068fca74ef55e4907e8340471ab303fe78a3dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T12:16:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-pro-video-post-production.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.output-mobile.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/pro-video-2026-09-08/README.md","reports/pro-video-2026-09-08/api-media.json","reports/pro-video-2026-09-08/browser.json","reports/pro-video-2026-09-08/desktop-audio.png","reports/pro-video-2026-09-08/mobile-audio.png","reports/pro-video-2026-09-08/validation.json","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},{"id":"8f4f826a7eb24e1d31b829f8202349c593b0f5f3","message":"Merge branch 'main' into feat/pro-video-post-production\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8f4f826a7eb24e1d31b829f8202349c593b0f5f3","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T12:07:57-07:00","added":["docs/releases/2026-09-08-quality1.md","reports/quality-coverage-2026-09-08/backup-verification.json","reports/quality-coverage-2026-09-08/browser-verification.json","reports/quality-coverage-2026-09-08/deployed-desktop.png","reports/quality-coverage-2026-09-08/deployed-mobile.png","reports/quality-coverage-2026-09-08/deployed-verify.json","reports/quality-coverage-2026-09-08/deployment.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-quality-coverage.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/quality-coverage-2026-09-08/README.md"]},{"id":"1358aa8ac383fd60db00890d060a27755eb58e83","message":"fix(video-edit): preserve manual finishing settings in AI candidates\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1358aa8ac383fd60db00890d060a27755eb58e83","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T12:07:57-07:00","added":[],"removed":[],"modified":["packages/video-edit/src/planner.ts","packages/video-edit/src/subtitles.test.ts"]}],"total_commits":0,"head_commit":{"id":"a8068fca74ef55e4907e8340471ab303fe78a3dd","message":"test(video-edit): verify final professional post-production release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a8068fca74ef55e4907e8340471ab303fe78a3dd","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-08T12:16:17-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-pro-video-post-production.md","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.output-mobile.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/pro-video-2026-09-08/README.md","reports/pro-video-2026-09-08/api-media.json","reports/pro-video-2026-09-08/browser.json","reports/pro-video-2026-09-08/desktop-audio.png","reports/pro-video-2026-09-08/mobile-audio.png","reports/pro-video-2026-09-08/validation.json","reports/production-acceptance.latest.json","reports/production-delivery-released.desktop.png","reports/production-delivery-revoked.mobile.png","reports/production-pagination.desktop.png","reports/production-pagination.mobile.png","reports/production-review-preview.desktop.png","reports/production-security.latest.json","reports/production-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/template-types.desktop.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":687457,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":7,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-09T03:06: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":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
|
1788894998
|
1788895024
|
0
|
1788894998
|
1788895024
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|