|
23547
|
fix(ci): full-history checkout so F5 can verify re fix(ci): full-history checkout so F5 can verify report provenance...
|
91
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e465f302d62150997d35782bfec2304043dd605d","after":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/e465f302d62150997d35782bfec2304043dd605d...fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","commits":[{"id":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","message":"fix(ci): full-history checkout so F5 can verify report provenance\n\nCI run #4 实锤:actions/checkout 默认 depth-1 浅克隆只含当前提交,\nfork-readiness F5 校验验收报告 provenance.gitSha(166f9b3,真实祖先)\n时 git cat-file 查无此 commit,把本仓真证据误判为外仓伪证。两 job 均\nfetch-depth: 0(历史极小,零成本);不给 F5 加浅克隆豁免——豁免正是\n它要防的伪证通道。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","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:49:49-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","message":"fix(ci): full-history checkout so F5 can verify report provenance\n\nCI run #4 实锤:actions/checkout 默认 depth-1 浅克隆只含当前提交,\nfork-readiness F5 校验验收报告 provenance.gitSha(166f9b3,真实祖先)\n时 git cat-file 查无此 commit,把本仓真证据误判为外仓伪证。两 job 均\nfetch-depth: 0(历史极小,零成本);不给 F5 加浅克隆豁免——豁免正是\n它要防的伪证通道。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","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:49:49-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]},"repository":{"id":91,"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":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2985,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.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:20:06+08:00","updated_at":"2026-08-30T09:45: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":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1788054595
|
1788054676
|
0
|
1788054593
|
1788054676
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23723
|
docs(release): record verified trends scrolling de docs(release): record verified trends scrolling deployment...
|
57
|
5
|
governance.yml
|
94
|
5
|
0
|
refs/heads/main
|
9f10a4c02ce3566a3a92b468af23f96d75569b6b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e47221e4088fcbd22b6581846a9bfc8db5428256","after":"9f10a4c02ce3566a3a92b468af23f96d75569b6b","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e47221e4088fcbd22b6581846a9bfc8db5428256...9f10a4c02ce3566a3a92b468af23f96d75569b6b","commits":[{"id":"9f10a4c02ce3566a3a92b468af23f96d75569b6b","message":"docs(release): record verified trends scrolling deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9f10a4c02ce3566a3a92b468af23f96d75569b6b","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:57:17-07:00","added":["docs/releases/2026-09-08-trends-scroll1.md","reports/industry-trends-scroll-2026-09-08/backup-verification.json","reports/industry-trends-scroll-2026-09-08/browser-verification.json","reports/industry-trends-scroll-2026-09-08/deployed-verify.json","reports/industry-trends-scroll-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-industry-trends-scroll.md","docs/releases/current.md","reports/industry-trends-scroll-2026-09-08/README.md"]}],"total_commits":0,"head_commit":{"id":"9f10a4c02ce3566a3a92b468af23f96d75569b6b","message":"docs(release): record verified trends scrolling deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9f10a4c02ce3566a3a92b468af23f96d75569b6b","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:57:17-07:00","added":["docs/releases/2026-09-08-trends-scroll1.md","reports/industry-trends-scroll-2026-09-08/backup-verification.json","reports/industry-trends-scroll-2026-09-08/browser-verification.json","reports/industry-trends-scroll-2026-09-08/deployed-verify.json","reports/industry-trends-scroll-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-industry-trends-scroll.md","docs/releases/current.md","reports/industry-trends-scroll-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":674689,"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:50:31+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788893856
|
1788893893
|
0
|
1788893854
|
1788893893
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23509
|
feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果 feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果裁决角色闸 + RoleAssignmentDto 接线 (#3)...
|
76
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
c0ed7540c137f2a6828d24503a4c396156996f33
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e4b6a5e4925ba1a7234be9035af63c53fd77b945","after":"c0ed7540c137f2a6828d24503a4c396156996f33","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/e4b6a5e4925ba1a7234be9035af63c53fd77b945...c0ed7540c137f2a6828d24503a4c396156996f33","commits":[{"id":"c0ed7540c137f2a6828d24503a4c396156996f33","message":"feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果裁决角色闸 + RoleAssignmentDto 接线 (#3)\n\n三项 2026-08-20 拍板:① HTTP /api/jobs kind 值域收窄为 HTTP_ENQUEUEABLE_JOB_KINDS\n(内部作业 analysis/outcome.expire 入口即 400,消费门禁断言升级并负向验证);\n② 结果裁决角色闸 canResolveOutcome 单源(outcome confirm/dispute/attribution 收口\napprover/admin,判责矩阵与 approve 完全对等,G8 ⑥);③ /api/roles list/upsert 返回\n接线 contracts RoleAssignmentDto。另含发布快照推进 cf68476 与合并插坏段落修复。\n\n本地全链(2026-08-20):pnpm check exit 0 · check:runtime 378/378(地板 370→378)·\ncheck:ui 14/14。PR CI:头 cec3cd5 run 32375879119 两 job 全绿(2395bfb 的 run #16 红\n为 G18 已档收尾偶发——378 测试全过仅 Fastify auth.rs256 收尾 TCP 未处理拒绝,\n等价复跑即绿,判责档案见 CLAUDE.md G18)。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c0ed7540c137f2a6828d24503a4c396156996f33","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T07:30:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.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/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/tenant.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","scripts/check-contract-consumers.mjs"]},{"id":"cf684760ca7c7d1580ffd27e4ab28726ab8a7636","message":"fix(build): 串行化双 app prisma:generate——U6 竞态在本仓 CI 首次实锤(run #13)(#2)\n\nturbo 包级依赖 api-fastify#prisma:generate → api-nestjs#prisma:generate 全局串行化,\n消除共享 .prisma/client 输出的并行写坏竞态(main run #13 红盘根因,playbook U6)。\nPR merge-ref CI 两 job 全绿(run 32372272135)。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/cf684760ca7c7d1580ffd27e4ab28726ab8a7636","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T06:14:00-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/migration-playbook.md","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/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","turbo.json"]},{"id":"24eee9a94b903d2e24cf965a081eb8c38a0158e3","message":"fix(build): 串行化双 app prisma:generate——U6 竞态在本仓 CI 首次实锤(run #13)\n\nmerge 9f94390(PR #1)后的 main push run #13 红:两 app 的 prisma generate 被\nturbo 并行执行,共享输出 node_modules/.prisma/client/default.js 被写坏\n(default.js:5 SyntaxError: Unexpected token ')',NestJS 21 个测试套件加载即灭)。\n同一棵树半小时前在 PR merge-ref 全绿(run 32360248617)——纯概率性竞态,\n正是 playbook U6 预记的形态(上游实锤过,本仓 CI 首中)。\n\n修复(U6 自记的长期解法):turbo.json 增包级任务依赖\n api-fastify#prisma:generate dependsOn api-nestjs#prisma:generate\n全局串行化(CI / 本地 / 任何调用方同治),不改各包脚本与开发用法。\n\n验证:pnpm prisma:generate 连跑 3 次,两 generate 严格先后执行,\ndefault.js 每次 node --check 解析干净;pnpm check 静态全绿。\n回灌:playbook U6 补本仓实锤与已落地解法;CLAUDE.md 发布快照补 run #13 判责一笔。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01SPyuoU3B2ecKWLUDp1ogF4\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/24eee9a94b903d2e24cf965a081eb8c38a0158e3","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-08-20T13:04:20Z","added":[],"removed":[],"modified":["CLAUDE.md","docs/migration-playbook.md","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/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","turbo.json"]},{"id":"9f94390ac23dee9c3055f9d1d7ab4bca93f50ffa","message":"fix(governance): 全面治理修复——C25/C26/F8 + 文档真源回灌 + 对等修正与新断言 (#1)\n\n体检 → 修复 → 三轮与 main 汇合的完整治理轮。合并树实测:pnpm check exit 0 ·\ncheck:runtime 370/370 · check:ui 14/14;PR merge-ref CI 两 job 全绿(run 32360248617)。\n含 C26(棘轮地板采集只认 git 已跟踪文件)的唯一根因修复。详见 PR #1 描述与\ndocs/governance-experience.md C25/C26 战役记录。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9f94390ac23dee9c3055f9d1d7ab4bca93f50ffa","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T05:53:19-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/triggers.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/health.ts","apps/api-fastify/src/routes/sse.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/queue/jobs.processor.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/work/work.module.ts","apps/api-nestjs/test/outcomes.integration.test.ts","apps/web/src/app/layout.tsx","apps/web/src/app/page.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/index.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","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-fork-readiness.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"c22c7bcdbc589842e356b7a3ed3a7fc8fc9dc76b","message":"merge: 汇合 main 技能目录治理特性轮(5e00445..e4b6a5e)——三方合并全链绿\n\n冲突解决(并集原则):\n- 发布快照/证据行:取 main「第二次全绿 run 32355865911」事实 + 本轮「参数以 report\n 为准」纪律 + 补记 run #8 C26 判责;数字按合并树实测(54/363/370/14)\n- baseline 表:fork-readiness 取本轮 F8 版;agent-adapters(G21 闭环新门禁)取 main;\n own-tests/own-test-cases 取 C26 口径注记 + 合并树实测值\n- 缺口索引:C25/C26(本轮)与 G21(main)并集;G21 OPEN 段随 main 删除\n- 经验库:C25/C26 战役(本轮)+ G21 战役(main)并集\n- reports/baseline 合并后全链重跑再生成\n\n合并树验证(2026-08-20,基座重启后实跑):pnpm check exit 0(含 agent-adapters 新门禁 +\nC26 跟踪计数)· check:runtime 370/370(地板 368→370)· check:ui 14/14(地板 11→14)·\ngovernance 53→54/349→363 · 终检 exit 0\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01SPyuoU3B2ecKWLUDp1ogF4\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c22c7bcdbc589842e356b7a3ed3a7fc8fc9dc76b","author":{"name":"Claude","email":"noreply@anthropic.com","username":""},"committer":{"name":"Claude","email":"noreply@anthropic.com","username":""},"verification":null,"timestamp":"2026-08-20T10:42:36Z","added":[".agents/skills/business-module-intake/SKILL.md","apps/api-fastify/src/modules/work/skills.service.ts","apps/api-fastify/src/routes/skills.ts","apps/api-nestjs/src/work/skills.controller.ts","apps/api-nestjs/src/work/skills.service.ts","apps/web/src/components/RoleAssignmentsPanel.tsx","apps/web/src/components/workbench/SkillPicker.tsx","packages/contracts/src/skill.test.ts","packages/contracts/src/skill.ts","reports/agent-adapters.latest.json","scripts/check-agent-adapters.mjs"],"removed":[],"modified":[".agents/skills/frontend-api-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md","CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/modules/work/errors.ts","apps/api-fastify/src/modules/work/runtimes.service.ts","apps/api-fastify/src/modules/work/tasks.service.ts","apps/api-fastify/src/routes/triggers.ts","apps/api-fastify/src/routes/work.ts","apps/api-fastify/test/actor-events.integration.test.ts","apps/api-fastify/test/learning.concurrency.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/src/triggers/triggers.service.ts","apps/api-nestjs/src/work/runtimes.service.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/learning.concurrency.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","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/JobsPanel.tsx","apps/web/src/components/ProjectsPanel.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/StateBadge.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/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/lib/state-theme.ts","apps/web/src/lib/types.ts","docs/domain-glossary.md","docs/domain/learning-blueprint.md","docs/domain/owner-matrix.md","docs/domain/work-blueprint.md","docs/governance-experience.md","governance.registry.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/llm.test.ts","packages/contracts/src/llm.ts","packages/contracts/src/realtime.ts","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/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"c0ed7540c137f2a6828d24503a4c396156996f33","message":"feat(governance): 三项拍板落地——HTTP jobs kind 值域收窄 + 结果裁决角色闸 + RoleAssignmentDto 接线 (#3)\n\n三项 2026-08-20 拍板:① HTTP /api/jobs kind 值域收窄为 HTTP_ENQUEUEABLE_JOB_KINDS\n(内部作业 analysis/outcome.expire 入口即 400,消费门禁断言升级并负向验证);\n② 结果裁决角色闸 canResolveOutcome 单源(outcome confirm/dispute/attribution 收口\napprover/admin,判责矩阵与 approve 完全对等,G8 ⑥);③ /api/roles list/upsert 返回\n接线 contracts RoleAssignmentDto。另含发布快照推进 cf68476 与合并插坏段落修复。\n\n本地全链(2026-08-20):pnpm check exit 0 · check:runtime 378/378(地板 370→378)·\ncheck:ui 14/14。PR CI:头 cec3cd5 run 32375879119 两 job 全绿(2395bfb 的 run #16 红\n为 G18 已档收尾偶发——378 测试全过仅 Fastify auth.rs256 收尾 TCP 未处理拒绝,\n等价复跑即绿,判责档案见 CLAUDE.md G18)。","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/c0ed7540c137f2a6828d24503a4c396156996f33","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-08-20T07:30:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/roles.service.ts","apps/api-fastify/src/routes/outcomes.ts","apps/api-fastify/test/auth.roles.acceptance.test.ts","apps/api-fastify/test/http.acceptance.test.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/test/auth.roles.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/outcome.ts","packages/contracts/src/tenant.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","scripts/check-contract-consumers.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":1591,"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-20T18:03:08+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1787327001
|
1787327074
|
0
|
1787326999
|
1787327074
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23884
|
Merge pull request #2 from laoluojuhai/codex/gover Merge pull request #2 from laoluojuhai/codex/governance-port-ci...
|
116
|
5
|
platform.yml
|
14
|
5
|
0
|
refs/heads/main
|
0b13f1834fd75f1f6cdec1b89ddc6e639dea5f4e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e5aca81c94597d4cb18cc65fa5b0855d4333aaf6","after":"0b13f1834fd75f1f6cdec1b89ddc6e639dea5f4e","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/e5aca81c94597d4cb18cc65fa5b0855d4333aaf6...0b13f1834fd75f1f6cdec1b89ddc6e639dea5f4e","commits":[{"id":"0b13f1834fd75f1f6cdec1b89ddc6e639dea5f4e","message":"Merge pull request #2 from laoluojuhai/codex/governance-port-ci\n\nfeat(governance): require independent port conformance evidence","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0b13f1834fd75f1f6cdec1b89ddc6e639dea5f4e","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T02:23:09-07:00","added":["docs/G-7治理门禁收口-2026-09-12.md","docs/owner-matrix.md","docs/runbook.md","governance/check-port-conformance.mjs","governance/lib/port-conformance.mjs","governance/test/port-conformance.test.mjs","reports/governance-g7.2026-09-12.json","reports/port-conformance.latest.json","stack/provision/nats-streams.sh"],"removed":[],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","docs/MS-1发布与接入操作说明.md","governance/README.md","governance/bin/cli.mjs","governance/package.json","governance/test/verify-candidate.test.mjs","governance/verify-candidate.mjs","package.json","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/CLAUDE.md","runtime/reports/agent-adapters.latest.json","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/ui-acceptance.latest.json","runtime/reports/validation-source.latest.json","stack/README.md","stack/compose.yaml"]},{"id":"756b29f122bf27e38b53b5625efa9802fd36c34d","message":"docs(governance): record seven-job CI and eligible eleven-report candidate\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/756b29f122bf27e38b53b5625efa9802fd36c34d","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-12T02:14:29-07:00","added":[],"removed":[],"modified":["docs/G-7治理门禁收口-2026-09-12.md","reports/governance-g7.2026-09-12.json"]},{"id":"2c74f72be2b7e34cac1b3a80b7e6a41e58718f2c","message":"chore(reports): record clean G-7 governance and port acceptance\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2c74f72be2b7e34cac1b3a80b7e6a41e58718f2c","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-12T02:02:35-07:00","added":["reports/governance-g7.2026-09-12.json","reports/port-conformance.latest.json"],"removed":[],"modified":["docs/G-7治理门禁收口-2026-09-12.md","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"3d04ef0550ffe068c8c8c768e90eea14ccba2aee","message":"feat(governance): require independent port conformance evidence for candidates\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/3d04ef0550ffe068c8c8c768e90eea14ccba2aee","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-12T02:00:38-07:00","added":["docs/G-7治理门禁收口-2026-09-12.md","governance/check-port-conformance.mjs","governance/lib/port-conformance.mjs","governance/test/port-conformance.test.mjs"],"removed":[],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","docs/MS-1发布与接入操作说明.md","governance/README.md","governance/bin/cli.mjs","governance/package.json","governance/test/verify-candidate.test.mjs","governance/verify-candidate.mjs","package.json"]},{"id":"8d2356b0cd3519f796b1876cea20bf59ed915d35","message":"docs(platform): 当前状态 runtime 行改引混沌批次证据(runtime 381 / UI 5 @ 0999ec8;静态 @ a0359bf,报告 fb41598)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8d2356b0cd3519f796b1876cea20bf59ed915d35","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-12T01:31:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"0b13f1834fd75f1f6cdec1b89ddc6e639dea5f4e","message":"Merge pull request #2 from laoluojuhai/codex/governance-port-ci\n\nfeat(governance): require independent port conformance evidence","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0b13f1834fd75f1f6cdec1b89ddc6e639dea5f4e","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T02:23:09-07:00","added":["docs/G-7治理门禁收口-2026-09-12.md","docs/owner-matrix.md","docs/runbook.md","governance/check-port-conformance.mjs","governance/lib/port-conformance.mjs","governance/test/port-conformance.test.mjs","reports/governance-g7.2026-09-12.json","reports/port-conformance.latest.json","stack/provision/nats-streams.sh"],"removed":[],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","docs/MS-1发布与接入操作说明.md","governance/README.md","governance/bin/cli.mjs","governance/package.json","governance/test/verify-candidate.test.mjs","governance/verify-candidate.mjs","package.json","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/CLAUDE.md","runtime/reports/agent-adapters.latest.json","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/ui-acceptance.latest.json","runtime/reports/validation-source.latest.json","stack/README.md","stack/compose.yaml"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":3254,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T17:15:23+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
26
|
1789205041
|
1789205074
|
0
|
1789205040
|
1789205096
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23515
|
Refine image generation modes and custom output si Refine image generation modes and custom output sizing...
|
57
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
43fb473a0f44228eb0ac2dc41e920e3e5ab523b5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","after":"43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e759f5e4509e93cc4968259cc6d6a64bc73c09f1...43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","commits":[{"id":"43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","message":"Refine image generation modes and custom output sizing\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T02:19:22-07:00","added":["apps/web/public/material-factory/human-review-approved-stamp.png","design-qa.md","reports/login-redesign.comparison.jpg","reports/login-redesign.desktop.png","reports/login-redesign.form-comparison.jpg","reports/login-redesign.mobile.png"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/brand.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","message":"Refine image generation modes and custom output sizing\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/43fb473a0f44228eb0ac2dc41e920e3e5ab523b5","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T02:19:22-07:00","added":["apps/web/public/material-factory/human-review-approved-stamp.png","design-qa.md","reports/login-redesign.comparison.jpg","reports/login-redesign.desktop.png","reports/login-redesign.form-comparison.jpg","reports/login-redesign.mobile.png"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/brand.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.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":12509,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-24T16:42:05+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1787563172
|
1787563263
|
0
|
1787563171
|
1787563263
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23427
|
feat: complete calibrated voiceprint workflow
|
62
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
32c70bb2198cf25b362a49e4f74387dd1a47768a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e795edf9d8130692c02ac8d6083ddbd41edcdc0c","after":"32c70bb2198cf25b362a49e4f74387dd1a47768a","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/e795edf9d8130692c02ac8d6083ddbd41edcdc0c...32c70bb2198cf25b362a49e4f74387dd1a47768a","commits":[{"id":"32c70bb2198cf25b362a49e4f74387dd1a47768a","message":"feat: complete calibrated voiceprint workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/32c70bb2198cf25b362a49e4f74387dd1a47768a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T22:19:23-07:00","added":["configs/voiceprint-calibration.json","reports/ui-audit-registration/01-disabled-registration.png","reports/ui-audit-registration/02-registration-validation-fixed.png","reports/ui-audit-registration/03-registration-validation-viewport.png","reports/voiceprint-calibration.latest.json","scripts/calibrate_voiceprint.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/audio_payload.py","src/speaker_embedding/calibration.py","tests/test_age_gender_sidecar.py","tests/test_calibration.py"],"removed":[],"modified":[".dockerignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/.env.vm.example","deploy/vm/Dockerfile.research","deploy/vm/Dockerfile.sidecar","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","docs/research-age-gender.md","package.json","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","pyproject.toml","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/deploy-vm.sh","scripts/governance-report.mjs","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_sidecar.py","tests/test_speaker_db.py"]}],"total_commits":0,"head_commit":{"id":"32c70bb2198cf25b362a49e4f74387dd1a47768a","message":"feat: complete calibrated voiceprint workflow\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/32c70bb2198cf25b362a49e4f74387dd1a47768a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-14T22:19:23-07:00","added":["configs/voiceprint-calibration.json","reports/ui-audit-registration/01-disabled-registration.png","reports/ui-audit-registration/02-registration-validation-fixed.png","reports/ui-audit-registration/03-registration-validation-viewport.png","reports/voiceprint-calibration.latest.json","scripts/calibrate_voiceprint.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/audio_payload.py","src/speaker_embedding/calibration.py","tests/test_age_gender_sidecar.py","tests/test_calibration.py"],"removed":[],"modified":[".dockerignore","CLAUDE.md","README.md","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/EnrollPanel.tsx","apps/web/src/components/voiceprint/IdentifyPanel.tsx","apps/web/src/components/voiceprint/VoiceProfileCard.tsx","deploy/vm/.env.vm.example","deploy/vm/Dockerfile.research","deploy/vm/Dockerfile.sidecar","deploy/vm/compose.yaml","deploy/vm/requirements-research.txt","docs/deployment-vm.md","docs/domain/voiceprint-blueprint.md","docs/karaoke-singer-personalized-dsp-system-design.md","docs/product-prd.md","docs/research-age-gender.md","package.json","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","pyproject.toml","reports/baseline.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/voiceprint-real-acceptance.latest.json","scripts/deploy-vm.sh","scripts/governance-report.mjs","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/__init__.py","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":918,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-07-15T11:24:34+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784092782
|
1784092836
|
0
|
1784092781
|
1784092836
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23689
|
merge: integrate accepted asset ownership and queu merge: integrate accepted asset ownership and queue scheduling fixes...
|
57
|
5
|
governance.yml
|
60
|
5
|
0
|
refs/heads/main
|
71f2769e17a58a697b380cc2a2be27428a9692b2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e831a73b46891ca7b86a44fa67605510f9272232","after":"71f2769e17a58a697b380cc2a2be27428a9692b2","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e831a73b46891ca7b86a44fa67605510f9272232...71f2769e17a58a697b380cc2a2be27428a9692b2","commits":[{"id":"71f2769e17a58a697b380cc2a2be27428a9692b2","message":"merge: integrate accepted asset ownership and queue scheduling fixes\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/71f2769e17a58a697b380cc2a2be27428a9692b2","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-08T07:51:20-07:00","added":["apps/api-fastify/test/creative-dispatch-boundary.integration.test.ts","apps/api-nestjs/test/creative-dispatch-boundary.integration.test.ts","docs/governance/log/2026-09-08-adversarial-path-queue.md","packages/public-file/src/asset-path.test.ts","packages/public-file/src/asset-path.ts"],"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/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","docs/adr/0016-durable-creative-projects.md","packages/contracts/src/creative-queue-policy.test.ts","packages/contracts/src/creative-queue-policy.ts","packages/public-file/src/index.ts","packages/public-file/src/rendered-file.test.ts","packages/public-file/src/rendered-file.ts","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"]},{"id":"cdbd6c1dcea80e4dfe523a059543e043380c0904","message":"fix(security): bind asset paths to one canonical form and admit queue candidates before LIMIT\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cdbd6c1dcea80e4dfe523a059543e043380c0904","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-08T07:44:25-07:00","added":["apps/api-fastify/test/creative-dispatch-boundary.integration.test.ts","apps/api-nestjs/test/creative-dispatch-boundary.integration.test.ts","docs/governance/log/2026-09-08-adversarial-path-queue.md","packages/public-file/src/asset-path.test.ts","packages/public-file/src/asset-path.ts"],"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/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","docs/adr/0016-durable-creative-projects.md","packages/contracts/src/creative-queue-policy.test.ts","packages/contracts/src/creative-queue-policy.ts","packages/public-file/src/index.ts","packages/public-file/src/rendered-file.test.ts","packages/public-file/src/rendered-file.ts","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"]}],"total_commits":0,"head_commit":{"id":"71f2769e17a58a697b380cc2a2be27428a9692b2","message":"merge: integrate accepted asset ownership and queue scheduling fixes\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/71f2769e17a58a697b380cc2a2be27428a9692b2","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-08T07:51:20-07:00","added":["apps/api-fastify/test/creative-dispatch-boundary.integration.test.ts","apps/api-nestjs/test/creative-dispatch-boundary.integration.test.ts","docs/governance/log/2026-09-08-adversarial-path-queue.md","packages/public-file/src/asset-path.test.ts","packages/public-file/src/asset-path.ts"],"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/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-review.integration.test.ts","apps/api-nestjs/src/creative-project/creative-project.service.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-review.integration.test.ts","docs/adr/0016-durable-creative-projects.md","packages/contracts/src/creative-queue-policy.test.ts","packages/contracts/src/creative-queue-policy.ts","packages/public-file/src/index.ts","packages/public-file/src/rendered-file.test.ts","packages/public-file/src/rendered-file.ts","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"]},"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":636940,"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-08T22:38:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
1
|
4
|
1788879154
|
1788879243
|
0
|
1788879154
|
1788879243
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23751
|
Merge branch 'main' into feat/video-formal Merge branch 'main' into feat/video-formal-delivery-20260908...
|
57
|
5
|
governance.yml
|
122
|
5
|
0
|
refs/heads/main
|
d5b92949daffd9b1d13a4090131ed55d1b1aef6f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e8c059aa0cf828e4922ec7fd58429272e2e93719","after":"d5b92949daffd9b1d13a4090131ed55d1b1aef6f","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e8c059aa0cf828e4922ec7fd58429272e2e93719...d5b92949daffd9b1d13a4090131ed55d1b1aef6f","commits":[{"id":"d5b92949daffd9b1d13a4090131ed55d1b1aef6f","message":"Merge branch 'main' into feat/video-formal-delivery-20260908\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d5b92949daffd9b1d13a4090131ed55d1b1aef6f","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-08T19:12:38-07:00","added":["docs/releases/2026-09-08-timeline4.md","reports/video-range-preview-2026-09-08/backup-verification.json","reports/video-range-preview-2026-09-08/build-interruption.json","reports/video-range-preview-2026-09-08/deployed-verify.json","reports/video-range-preview-2026-09-08/deployment.json","reports/video-range-preview-2026-09-08/live-browser-verification.json","reports/video-range-preview-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-video-range-preview.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","reports/video-range-preview-2026-09-08/README.md","reports/video-range-preview-2026-09-08/validation.json"]},{"id":"51523f1ae0cd3df01d9b145d4795568a0b908925","message":"test(governance): final same-fingerprint evidence for video formal transfer\n\nSeven gates and the dual-backend HTTP specialty pass on the tree merged\nwith main 70fcc5c (range preview); one production-gate flake and the\nreused-database specialty failures are kept in the round logs.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/51523f1ae0cd3df01d9b145d4795568a0b908925","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-08T19:12:38-07:00","added":[],"removed":[],"modified":["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/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/template-types.mobile.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-delivery-2026-09-08/README.md","reports/video-delivery-2026-09-08/verification.json","reports/video-regenerate-2026-09-08/desktop.png"]},{"id":"691d39b5437b8f3add1a5d10357fc88a9171a447","message":"fix(video-edit): remove duplicated media query import after merge\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/691d39b5437b8f3add1a5d10357fc88a9171a447","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-08T18:59:35-07:00","added":[],"removed":[],"modified":["packages/video-edit/src/index.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"7858d74730cd96f451f63a4f5dc0acc26fd0d449","message":"Merge branch 'main' into feat/video-formal-delivery-20260908\n\n# Conflicts:\n#\tCLAUDE.md\n#\tapps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx\n#\tpackages/video-edit/src/index.ts\n#\tpackages/video-edit/src/media.ts\n#\treports/contract-consumers.latest.json\n#\treports/dependency-audit.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.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-acceptance.latest.json\n#\treports/production-security.latest.json\n#\treports/public-file-acceptance.latest.json\n#\treports/public-file-integration.latest.json\n#\treports/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/script-acceptance.latest.json\n#\treports/sidecar-tests.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/toolchain.latest.json\n#\treports/ui-acceptance.latest.json\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7858d74730cd96f451f63a4f5dc0acc26fd0d449","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-08T18:55:22-07:00","added":["apps/web/src/components/material-factory/video-edit/RangePreviewControls.tsx","docs/adr/0018-video-range-preview.md","docs/governance/log/2026-09-08-frontend-uiux-analysis.md","docs/governance/log/2026-09-08-video-range-preview.md","docs/releases/2026-09-08-merged1-migration-plan.md","docs/releases/2026-09-08-merged1.md","packages/contracts/src/video-edit-range.test.ts","packages/contracts/src/video-edit-range.ts","packages/video-edit/src/range-preview.test.ts","packages/video-edit/src/range-preview.ts","reports/frontend-uiux-analysis-2026-09-08/README.md","reports/frontend-uiux-analysis-2026-09-08/evidence/aggregate.mjs","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-aggregate.md","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-summary-rerun.json","reports/frontend-uiux-analysis-2026-09-08/evidence/scan-summary.json","reports/frontend-uiux-analysis-2026-09-08/evidence/source-metrics.sh","reports/frontend-uiux-analysis-2026-09-08/evidence/source-metrics.txt","reports/frontend-uiux-analysis-2026-09-08/evidence/uiux-interactions.mjs","reports/frontend-uiux-analysis-2026-09-08/evidence/uiux-scan.mjs","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-admin-operations.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-admin.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-brand.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-content.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-create.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-deliveries.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-events.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-gallery.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-home.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-industry-trends.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-inpaint.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-landing.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-reviews.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-script.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-shijie.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-storyboard.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-tasks.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-templates.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-video-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/desktop-video.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-admin.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-brand.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-content.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-create-scrolled.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-create.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-home.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-landing.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-menu-dialog.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-script.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-storyboard.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-tasks.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-video-edit.jpg","reports/frontend-uiux-analysis-2026-09-08/screens/mobile-video.jpg","reports/releases/merged1-2026-09-08/backup-verification.json","reports/releases/merged1-2026-09-08/browser-verification.json","reports/releases/merged1-2026-09-08/build.json","reports/releases/merged1-2026-09-08/database-verification.json","reports/releases/merged1-2026-09-08/deployment.json","reports/releases/merged1-2026-09-08/final-verification.json","reports/releases/merged1-2026-09-08/identity.json","reports/releases/merged1-2026-09-08/rehearsal.json","reports/releases/merged1-2026-09-08/source-permissions.json","reports/video-range-preview-2026-09-08/README.md","reports/video-range-preview-2026-09-08/benchmark.json","reports/video-range-preview-2026-09-08/browser-verification.json","reports/video-range-preview-2026-09-08/range-api.json","reports/video-range-preview-2026-09-08/specialty-results.json","reports/video-range-preview-2026-09-08/validation.json","scripts/benchmark-video-range.cjs","scripts/check-video-range-preview.cjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/video-edit.ts","apps/api-nestjs/src/video-edit/video-edit.controller.ts","apps/web/src/components/material-factory/video-edit/SubtitleBurnPanel.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/timeline-position.ts","apps/web/src/lib/api.ts","deploy/vm/release.py","docs/README.md","docs/adr/README.md","docs/domain/owner-matrix.md","docs/releases/current.md","packages/contracts/src/index.ts","packages/contracts/src/video-edit.ts","packages/video-edit/src/index.ts","packages/video-edit/src/media.ts","packages/video-edit/src/post-production.ts","packages/video-edit/src/worker.ts","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","scripts/video-edit-timeline.test.mjs"]},{"id":"90231ad9130ac52606bb0cb2f36c524953eb7e67","message":"test(governance): regenerate heavy gate reports for the integrated delivery tree\n\nSeven gates pass at fingerprint 56e1a65e… on the branch merged with main\n2344e0b (governed media workflows, media overviews).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/90231ad9130ac52606bb0cb2f36c524953eb7e67","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-08T18:51:54-07:00","added":[],"removed":[],"modified":["reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.images-desktop.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/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"]}],"total_commits":0,"head_commit":{"id":"d5b92949daffd9b1d13a4090131ed55d1b1aef6f","message":"Merge branch 'main' into feat/video-formal-delivery-20260908\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d5b92949daffd9b1d13a4090131ed55d1b1aef6f","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-08T19:12:38-07:00","added":["docs/releases/2026-09-08-timeline4.md","reports/video-range-preview-2026-09-08/backup-verification.json","reports/video-range-preview-2026-09-08/build-interruption.json","reports/video-range-preview-2026-09-08/deployed-verify.json","reports/video-range-preview-2026-09-08/deployment.json","reports/video-range-preview-2026-09-08/live-browser-verification.json","reports/video-range-preview-2026-09-08/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-video-range-preview.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","reports/video-range-preview-2026-09-08/README.md","reports/video-range-preview-2026-09-08/validation.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":748336,"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-09T09:56:03+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788920076
|
1788920118
|
0
|
1788920076
|
1788920118
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23833
|
docs(playbook): 回灌 P19–P22(共享基座跨套件领取、默认状态码漂移、非空验收库 docs(playbook): 回灌 P19–P22(共享基座跨套件领取、默认状态码漂移、非空验收库、并行构建污染)...
|
54
|
5
|
governance.yml
|
35
|
5
|
0
|
refs/heads/main
|
4e46be3af7172533e93417e123d3369963f13e08
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e8d262220de86b35614cdeb27802673a82930ffa","after":"4e46be3af7172533e93417e123d3369963f13e08","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/e8d262220de86b35614cdeb27802673a82930ffa...4e46be3af7172533e93417e123d3369963f13e08","commits":[{"id":"4e46be3af7172533e93417e123d3369963f13e08","message":"docs(playbook): 回灌 P19–P22(共享基座跨套件领取、默认状态码漂移、非空验收库、并行构建污染)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4e46be3af7172533e93417e123d3369963f13e08","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-10T06:51:15-07:00","added":[],"removed":[],"modified":["docs/migration-playbook.md"]}],"total_commits":0,"head_commit":{"id":"4e46be3af7172533e93417e123d3369963f13e08","message":"docs(playbook): 回灌 P19–P22(共享基座跨套件领取、默认状态码漂移、非空验收库、并行构建污染)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4e46be3af7172533e93417e123d3369963f13e08","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-10T06:51:15-07:00","added":[],"removed":[],"modified":["docs/migration-playbook.md"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5058,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-10T21:38: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
|
2
|
12
|
1789048639
|
1789048683
|
0
|
1789048277
|
1789048693
|
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
|
|
18319
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
ci.yml
|
18239
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
14
|
1777360604
|
1777360641
|
0
|
1777360555
|
1777361866
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
18320
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
e2e-tests.yml
|
18240
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1777360642
|
1777360781
|
0
|
1777360556
|
1777361868
|
|
|
0
|
Edit
Delete
|
|
18322
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
test-pipeline.yml
|
18241
|
5
|
0
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
72
|
1777360790
|
1777361849
|
0
|
1777360565
|
1777361964
|
group: test-pipeline-${{ github.ref }}
cancel-in-p group: test-pipeline-${{ github.ref }}
cancel-in-progress: "true"
...
|
test-pipeline-refs/heads/main
|
1
|
Edit
Delete
|
|
18325
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18245
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777361873
|
1777361873
|
0
|
1777360850
|
1777361873
|
|
|
0
|
Edit
Delete
|
|
18326
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18246
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777361875
|
1777361876
|
0
|
1777361150
|
1777361876
|
|
|
0
|
Edit
Delete
|
|
18327
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18247
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777361877
|
1777361877
|
0
|
1777361450
|
1777361877
|
|
|
0
|
Edit
Delete
|
|
18328
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18248
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777361879
|
1777361879
|
0
|
1777361810
|
1777361879
|
|
|
0
|
Edit
Delete
|
|
18334
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18254
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777362050
|
1777362051
|
0
|
1777362050
|
1777362051
|
|
|
0
|
Edit
Delete
|
|
18335
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18255
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777362350
|
1777362351
|
0
|
1777362350
|
1777362351
|
|
|
0
|
Edit
Delete
|
|
18336
|
Merge branch 'claude/hungry-montalcini-932ea7& Merge branch 'claude/hungry-montalcini-932ea7'...
|
6
|
5
|
health-check.yml
|
18256
|
-2
|
337
|
refs/heads/main
|
6086495033147939cdd979bd15fd97d71f6c1ac3
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9258713d6944a1e296ddd7017cf9755186b54d8","after":"6086495033147939cdd979bd15fd97d71f6c1ac3","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/e9258713d6944a1e296ddd7017cf9755186b54d8...6086495033147939cdd979bd15fd97d71f6c1ac3","commits":[{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},{"id":"9b899c023b84a5aeab99138ad11b0618bb0875a6","message":"fix(views): groupbuy-* 4 个 Index 补 reactive import 修复白屏 ReferenceError\n\n真生产 bug:4 个 view 的 line 40-41 都有 const createForm = reactive({...})\n但 import 只有 { ref } 没 { reactive } —— 用户打开任一团购页面会立即\nReferenceError: reactive is not defined → 白屏 + console 红字。\n\n明显是同一份模板 paste 出来的,原始模板少 reactive import 的同一个错。\n4 个文件统一补 import:\n - import { ref } from 'vue'\n + import { reactive, ref } from 'vue'\n\n涉及页面:\n - 团购活动管理 /groupbuy-campaigns\n - 参团管理 /groupbuy-participants\n - 团购商品管理 /groupbuy-products\n - 团购结算管理 /groupbuy-settlements\n\n注: 同模板写法的其它 KTV 营销域 view 应该也 sweep 一遍是否有同款问题,\n但 sweep 范围超出本 PR,建议另开 issue。本 commit 仅修这 4 个已确认的。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/9b899c023b84a5aeab99138ad11b0618bb0875a6","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:49-07:00","added":[],"removed":[],"modified":["frontend/src/views/groupbuy-campaigns/Index.vue","frontend/src/views/groupbuy-participants/Index.vue","frontend/src/views/groupbuy-products/Index.vue","frontend/src/views/groupbuy-settlements/Index.vue"]},{"id":"d4fc589c2674f52dd6c03aaca02764ae3002ca47","message":"chore(release): rollback-prod.sh dry-run 容错 + ORIGINAL_ARGS 保留\n\n为 e3e4f75d0 (rollback-prod.sh) 加两项 UX 改进,让脚本在不完整环境下\n也能跑 dry-run 演练,方便开发机/沙箱测脚本本身正确性。\n\n变更:\n + ORIGINAL_ARGS=(\"$@\") # 第 20 行:原始参数保留供后续日志/重启使用\n + 预检 .env / docker daemon 缺失时:\n DRY_RUN=true → 仅 WARN 不阻塞(原逻辑:直接 FAIL 退出)\n DRY_RUN=false → 仍 FAIL(生产严格度不变)\n + --strategy \"${2:-}\" # 参数解析对 bash strict mode 更稳健\n\n验证:\n $ bash scripts/release/rollback-prod.sh --dry-run --strategy traffic \\\\\n --reason \"验收测试\" --force\n → 5 项预检通过 (WARN 缺失 .env, PASS docker, INFO git HEAD, PASS reason)\n → [DRY-RUN] 流量回滚 → [DRY-RUN] 后置验证\n → \"全部完成\"\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/d4fc589c2674f52dd6c03aaca02764ae3002ca47","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:33-07:00","added":[],"removed":[],"modified":["scripts/release/rollback-prod.sh"]},{"id":"3f732fd5d670787659f0ba94e73357a7f079d352","message":"feat(service-monitor): OpenAPI docs + 前端 types 全栈同步 unknown/nullable/note\n\n为 commit 3dca25c90 (type union 扩展) 同步 OpenAPI schema 与前端 types,\n让契约从 Prisma → service → controller → OpenAPI → 前端 types → Vue 模板\n七层全栈对齐。\n\n变更:\n service-monitor.docs.ts (+74):\n - runtimeStatusSchema: 加 'unknown' enum 值\n - runtimeServiceSchema:\n latency: number → z.union([string, number]).nullable().optional()\n uptime: number → z.union([string, number]).optional()\n + note: z.string().optional()\n + details: z.record(z.unknown()).optional()\n - 新增 performanceMetricsSchema (system / process / requests\n 三段嵌套,requests.* 标 nullable + note)\n\n frontend/src/api/modules/service-monitor.ts (+60):\n - ServiceStatus.status: 加 'unknown'\n - ServiceStatusOverview.services.*: 加 'unknown' + note 字段\n - AdminOverviewResponse.system.diskUsage: string → string | null\n - AdminOverviewResponse.requests.{total,avgLatency,errorRate}:\n number/string → number|null / string|null + note?: string\n - 新增 PerformanceMetrics interface 配合后端 schema\n\n service-monitor/Index.vue (+3-1):\n - 跟进 frontend/src/api/modules/service-monitor.ts type 变化的小调整\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/3f732fd5d670787659f0ba94e73357a7f079d352","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:44:16-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-monitor.docs.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue"]},{"id":"ad05c63ff48d357cad375e21d75232fd19fc8b4a","message":"test(service-monitor): 补 service-disruption + api 两层测试覆盖\n\n为 commit 3dca25c90 (真健康检查 + withHealthTimeout) 补单元 + API 集成测试,\n锁定运行态行为,防止后续退化。\n\n变更:\n service-disruption.service.test.ts (+78):\n - mockCheckKafkaHealth: vi.fn().mockResolvedValue({ connected:true, latency:3 })\n - mockMinioClient.bucketExists: vi.fn().mockResolvedValue(true)\n - mockWebsocketHealth.getReadinessStatus: vi.fn().mockResolvedValue({\n ready:true, checks:{ redis:true, connections:true } })\n - vi.mock('../../config/kafka.js') 加 checkKafkaHealth export\n - 覆盖 Kafka/MinIO/WebSocket 真健康检查的 happy path\n\n tests/api/service-monitor.test.ts (+53):\n - GET /service-monitor/metrics + /cache 路由的 API 端到端测试\n - 验证 commit ce9319a94 的两条新路由真挂载、真返回\n - 与运行态契约对齐\n\n注: 沙箱无 vitest 跑不了,CI test job 兜底。\n\nCo-Authored-By: Claude Opus 4.7 (1M context) \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/ad05c63ff48d357cad375e21d75232fd19fc8b4a","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-27T02:43:55-07:00","added":[],"removed":[],"modified":["backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/tests/api/service-monitor.test.ts"]}],"total_commits":0,"head_commit":{"id":"6086495033147939cdd979bd15fd97d71f6c1ac3","message":"Merge branch 'claude/hungry-montalcini-932ea7'\n\n# Conflicts:\n#\tbackend/src/modules/service-monitor/service-disruption.service.ts\n#\treports/api-route-contract-audit.latest.json\n#\treports/api-route-contract-audit.latest.md\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6086495033147939cdd979bd15fd97d71f6c1ac3","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-28T00:14:48-07:00","added":["scripts/release/rollback-prod.sh"],"removed":[],"modified":["backend/src/modules/customers/customer-export.service.ts","backend/src/modules/service-monitor/service-disruption.controller.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service-monitor/service-monitor.docs.ts","backend/src/modules/service-monitor/service-monitor.routes.ts","backend/tests/api/service-monitor.test.ts","frontend/src/api/modules/service-monitor.ts","frontend/src/views/service-monitor/Index.vue","scripts/fix-duplicate-migrations.sh","scripts/generate-rollback-strategy.sh"]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5230218,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":16,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-28T15:13:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777362650
|
1777362651
|
0
|
1777362650
|
1777362651
|
|
|
0
|
Edit
Delete
|
|
23873
|
docs(releases): record g34-write-chain1 deployment
|
57
|
5
|
governance.yml
|
217
|
5
|
0
|
refs/heads/main
|
98d37c24042810f98d7817d37515bdd8d89e6570
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9764103a19cefa8ecbc18c172a62f8c900a7b72","after":"98d37c24042810f98d7817d37515bdd8d89e6570","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e9764103a19cefa8ecbc18c172a62f8c900a7b72...98d37c24042810f98d7817d37515bdd8d89e6570","commits":[{"id":"98d37c24042810f98d7817d37515bdd8d89e6570","message":"docs(releases): record g34-write-chain1 deployment\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/98d37c24042810f98d7817d37515bdd8d89e6570","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-12T00:45:14-07:00","added":["docs/releases/2026-09-12-g34-write-chain1.md"],"removed":[],"modified":["docs/governance/log/2026-09-12-g34-write-chain.md","docs/releases/current.md","reports/startup-acceptance.latest.json"]}],"total_commits":0,"head_commit":{"id":"98d37c24042810f98d7817d37515bdd8d89e6570","message":"docs(releases): record g34-write-chain1 deployment\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/98d37c24042810f98d7817d37515bdd8d89e6570","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-12T00:45:14-07:00","added":["docs/releases/2026-09-12-g34-write-chain1.md"],"removed":[],"modified":["docs/governance/log/2026-09-12-g34-write-chain.md","docs/releases/current.md","reports/startup-acceptance.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":947713,"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":14,"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-12T15:40:27+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1789199124
|
1789200172
|
0
|
1789199124
|
1789200172
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23740
|
test(video-edit): verify direct timeline editing r test(video-edit): verify direct timeline editing release baseline...
|
57
|
5
|
governance.yml
|
111
|
5
|
0
|
refs/heads/main
|
9a541a3406a35f02960bb330a7c7475a351fab25
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e9b89290bab75ea32c59892a594d1a67df6804b6","after":"9a541a3406a35f02960bb330a7c7475a351fab25","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/e9b89290bab75ea32c59892a594d1a67df6804b6...9a541a3406a35f02960bb330a7c7475a351fab25","commits":[{"id":"9a541a3406a35f02960bb330a7c7475a351fab25","message":"test(video-edit): verify direct timeline editing release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9a541a3406a35f02960bb330a7c7475a351fab25","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-08T17:16:01-07:00","added":["reports/video-timeline-editing-2026-09-08/README.md","reports/video-timeline-editing-2026-09-08/browser-verification.json","reports/video-timeline-editing-2026-09-08/post-production-api.json","reports/video-timeline-editing-2026-09-08/specialty-results.json","reports/video-timeline-editing-2026-09-08/subtitle-api.json","reports/video-timeline-editing-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-editing.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"75d8ae2ae4976d2b5ae9905b7275469089eed962","message":"Merge branch 'main' into feat/video-timeline-preview\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/75d8ae2ae4976d2b5ae9905b7275469089eed962","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-08T17:15:12-07:00","added":["docs/releases/2026-09-08-subtitle-burn1.md","reports/subtitle-burn-2026-09-08/README.md","reports/subtitle-burn-2026-09-08/api.json","reports/subtitle-burn-2026-09-08/backup-verification.json","reports/subtitle-burn-2026-09-08/browser-verification.json","reports/subtitle-burn-2026-09-08/deployed-verify.json","reports/subtitle-burn-2026-09-08/deployment.json","reports/subtitle-burn-2026-09-08/output.png","reports/subtitle-burn-2026-09-08/post-deployment-smoke.json","reports/subtitle-burn-2026-09-08/post-production.json","reports/subtitle-burn-2026-09-08/subtitle-burn-mobile.png","reports/subtitle-burn-2026-09-08/subtitle-burn.png","reports/subtitle-burn-2026-09-08/subtitle-regression.json","reports/subtitle-burn-2026-09-08/ui.json","reports/subtitle-burn-2026-09-08/validation.json"],"removed":[],"modified":["docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"9dc2165d25aecc1540a58928305221113c9522e6","message":"feat(video-edit): add atomic timeline trim roll slip and editing shortcuts\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9dc2165d25aecc1540a58928305221113c9522e6","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-08T17:09:53-07:00","added":["docs/governance/log/2026-09-08-video-timeline-editing.md","docs/product/pro-video-platform-progress.md","packages/contracts/src/video-edit-timeline.test.ts","packages/contracts/src/video-edit-timeline.ts"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/video-edit/EditTimeline.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/components/material-factory/video-edit/video-edit.module.css","docs/product/pro-video-platform-gap-analysis.md","packages/contracts/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"9a541a3406a35f02960bb330a7c7475a351fab25","message":"test(video-edit): verify direct timeline editing release baseline\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9a541a3406a35f02960bb330a7c7475a351fab25","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-08T17:16:01-07:00","added":["reports/video-timeline-editing-2026-09-08/README.md","reports/video-timeline-editing-2026-09-08/browser-verification.json","reports/video-timeline-editing-2026-09-08/post-production-api.json","reports/video-timeline-editing-2026-09-08/specialty-results.json","reports/video-timeline-editing-2026-09-08/subtitle-api.json","reports/video-timeline-editing-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-08-video-timeline-editing.md","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":724373,"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-09T08:09:24+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
1788913472
|
0
|
1788912983
|
1788913472
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23469
|
接入阿里模型
|
51
|
5
|
ci.yml
|
7
|
8
|
0
|
refs/heads/main
|
d2c80a998dd127b9cbf72d39436ca7248ffe98ae
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ea5ea97b4d7487a0cd01201fcf404ec4b1913321","after":"d2c80a998dd127b9cbf72d39436ca7248ffe98ae","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ea5ea97b4d7487a0cd01201fcf404ec4b1913321...d2c80a998dd127b9cbf72d39436ca7248ffe98ae","commits":[{"id":"d2c80a998dd127b9cbf72d39436ca7248ffe98ae","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d2c80a998dd127b9cbf72d39436ca7248ffe98ae","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T14:49:48+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"d2c80a998dd127b9cbf72d39436ca7248ffe98ae","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d2c80a998dd127b9cbf72d39436ca7248ffe98ae","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T14:49:48+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/scripts/test-static.mjs"]},"repository":{"id":51,"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":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87296,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.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-02T16:02:07+08:00","updated_at":"2026-07-31T14:10: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":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"chenjunfeng"},"sender":{"id":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"chenjunfeng"}}...
|
push
|
2
|
8
|
1785480594
|
1785480692
|
0
|
1785480593
|
1785480692
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23619
|
chore(reports): refresh clean static evidence
|
104
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
26967e84600a2a5cfb83b7a300e130e94a2122aa
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7","after":"26967e84600a2a5cfb83b7a300e130e94a2122aa","compare_url":"https://gitea.g-hi.com/luoanwu/cost-capacity/compare/ea8167e33e2b6db49a9c694db5fbb4b6b84ad4b7...26967e84600a2a5cfb83b7a300e130e94a2122aa","commits":[{"id":"26967e84600a2a5cfb83b7a300e130e94a2122aa","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/26967e84600a2a5cfb83b7a300e130e94a2122aa","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:34:56-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"f7774f14cbf2aff824abf765ec2c603eb3b59745","message":"chore(reports): record clean framework sync evidence\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/f7774f14cbf2aff824abf765ec2c603eb3b59745","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:20:32-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"723a8ed2ba0af8ecccecc2234a4d9e9ed590c4db","message":"chore(migration): record framework sync receipt\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/723a8ed2ba0af8ecccecc2234a4d9e9ed590c4db","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:19:46-07:00","added":[],"removed":[],"modified":["docs/framework-migration.md","reports/framework-migration.latest.json"]},{"id":"c93402b1982dba146fe2db96906987db7f5521bf","message":"feat(framework): sync G15-B Redis occupancy guard and governance experience\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/c93402b1982dba146fe2db96906987db7f5521bf","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:19:45-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md","docs/governance-experience.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-conformance-differential.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/acceptance-base-guard.mjs"]},{"id":"3c367c2adc04600600109ae3882e8b44d895bc44","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/3c367c2adc04600600109ae3882e8b44d895bc44","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T01:30:38-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"26967e84600a2a5cfb83b7a300e130e94a2122aa","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/cost-capacity/commit/26967e84600a2a5cfb83b7a300e130e94a2122aa","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:34:56-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":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":712,"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
|
2
|
10
|
1788405910
|
1788406000
|
0
|
1788405497
|
1788407516
|
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
|
|
23473
|
接入阿里模型
|
51
|
5
|
ci.yml
|
11
|
8
|
0
|
refs/heads/main
|
d230fd6dfb8fdba731ca1356263d1ec584d734be
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ead57a81e98d7f55797e6963b61e4847d9d9a96d","after":"d230fd6dfb8fdba731ca1356263d1ec584d734be","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ead57a81e98d7f55797e6963b61e4847d9d9a96d...d230fd6dfb8fdba731ca1356263d1ec584d734be","commits":[{"id":"d230fd6dfb8fdba731ca1356263d1ec584d734be","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d230fd6dfb8fdba731ca1356263d1ec584d734be","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T17:31:49+08:00","added":[],"removed":["团购本地生活AI运营App/nginx.conf"],"modified":["COLIMA.md","docker-compose.colima.yml","scripts/colima-start.sh","团购本地生活AI运营App/Dockerfile","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/docker-entrypoint.d/40-yggdrasil-runtime-config.sh"]}],"total_commits":0,"head_commit":{"id":"d230fd6dfb8fdba731ca1356263d1ec584d734be","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d230fd6dfb8fdba731ca1356263d1ec584d734be","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T17:31:49+08:00","added":[],"removed":["团购本地生活AI运营App/nginx.conf"],"modified":["COLIMA.md","docker-compose.colima.yml","scripts/colima-start.sh","团购本地生活AI运营App/Dockerfile","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/docker-entrypoint.d/40-yggdrasil-runtime-config.sh"]},"repository":{"id":51,"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":"yggdrasil-local-life-tools","full_name":"luoanwu/yggdrasil-local-life-tools","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":87491,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools/languages","html_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/yggdrasil-local-life-tools","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/yggdrasil-local-life-tools.git","clone_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools.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-02T16:02:07+08:00","updated_at":"2026-07-31T16:21:46+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":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"chenjunfeng"},"sender":{"id":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"chenjunfeng"}}...
|
push
|
2
|
8
|
1785490315
|
1785490466
|
0
|
1785490315
|
1785490466
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23758
|
fix(web): remove model admin shortcut from image c fix(web): remove model admin shortcut from image creation...
|
57
|
5
|
governance.yml
|
128
|
5
|
0
|
refs/heads/main
|
86d3d4d1381714d7faed2fc54bf45493f73eb0b1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eafae214ceae1fdb126697d5110baf2313467eea","after":"86d3d4d1381714d7faed2fc54bf45493f73eb0b1","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/eafae214ceae1fdb126697d5110baf2313467eea...86d3d4d1381714d7faed2fc54bf45493f73eb0b1","commits":[{"id":"86d3d4d1381714d7faed2fc54bf45493f73eb0b1","message":"fix(web): remove model admin shortcut from image creation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/86d3d4d1381714d7faed2fc54bf45493f73eb0b1","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-08T22:15:40-07:00","added":["docs/governance/log/2026-09-08-create-model-link.md","reports/create-model-link-2026-09-08/README.md","reports/create-model-link-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/CreateStudio.tsx","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"86d3d4d1381714d7faed2fc54bf45493f73eb0b1","message":"fix(web): remove model admin shortcut from image creation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/86d3d4d1381714d7faed2fc54bf45493f73eb0b1","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-08T22:15:40-07:00","added":["docs/governance/log/2026-09-08-create-model-link.md","reports/create-model-link-2026-09-08/README.md","reports/create-model-link-2026-09-08/summary.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/CreateStudio.tsx","reports/contract-consumers.latest.json","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":769512,"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":8,"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-09T13:12: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
|
2
|
4
|
1788930960
|
1788931000
|
0
|
1788930958
|
1788931000
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23514
|
feat(studio): connect script storyboard and video feat(studio): connect script storyboard and video workflow...
|
57
|
5
|
governance.yml
|
1
|
5
|
0
|
refs/heads/main
|
e759f5e4509e93cc4968259cc6d6a64bc73c09f1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eb6483fa7aadc8d2d4e715274c2519f67005e135","after":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/eb6483fa7aadc8d2d4e715274c2519f67005e135...e759f5e4509e93cc4968259cc6d6a64bc73c09f1","commits":[{"id":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","message":"feat(studio): connect script storyboard and video workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e759f5e4509e93cc4968259cc6d6a64bc73c09f1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T01:26:47-07:00","added":["apps/web/src/components/material-factory/PipelineFlow.tsx","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/storyboard-director.ts","apps/web/src/store/useFactoryStore.ts","apps/web/tsconfig.json","packages/contracts/src/index.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-naming.mjs","services/model-sidecar/main.py"]},{"id":"553239d8af8a5f7a56988fa913deaecd5f154121","message":"feat(studio): complete live Bailian production workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/553239d8af8a5f7a56988fa913deaecd5f154121","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T19:25:55-07:00","added":["apps/api-fastify/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-fastify/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/api-nestjs/prisma/migrations/20260823220000_script_scenario_modes/migration.sql","apps/api-nestjs/prisma/migrations/20260823230000_storyboard_video/migration.sql","apps/web/src/components/material-factory/VideoStudio.tsx","packages/contracts/src/script-scenario.test.ts","packages/contracts/src/script-sidecar.test.ts","packages/contracts/src/storyboard-video.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-fastify/test/material-script.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/api-nestjs/test/material-script.acceptance.test.ts","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/material-factory/BlockedResolutionPanel.tsx","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/DemoExportModal.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/ExportModal.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/InstanceGallery.tsx","apps/web/src/components/material-factory/LandingGate.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/ModelOperationsDashboard.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/RoleConfirmPanel.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/ShotBoard.tsx","apps/web/src/components/material-factory/StillVersionBar.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","apps/web/src/components/material-factory/ui.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","packages/contracts/src/script.ts","packages/contracts/src/storyboard.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-script-acceptance.mjs","services/model-sidecar/main.py"]},{"id":"69d9525d1e38cdb9da1db02f2e25411d2bd4b891","message":"feat(models): route image generation through Bailian Wan 2.7 Pro\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/69d9525d1e38cdb9da1db02f2e25411d2bd4b891","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T17:25:44-07:00","added":[".github/workflows/governance.yml","docs/domain/module-boundary.md","reports/module-boundary.latest.json","scripts/check-module-boundary.mjs"],"removed":[],"modified":[".github/pull_request_template.md","CLAUDE.md","apps/api-fastify/.env.example","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/model-connector.client.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-fastify/test/material-script.acceptance.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/src/material-factory/model-connector.client.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/api-nestjs/test/material-production-worker.integration.test.ts","apps/api-nestjs/test/material-script.acceptance.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/eslint.config.mjs","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/ModelConnectionsStudio.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/product/controlled-ai-material-factory.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","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/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/validation-source.latest.json","scripts/check-inference-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/model-sidecar/README.md","services/model-sidecar/main.py"]},{"id":"1bc728c529ae21297108ec097f939ce72e77c3c5","message":"feat(storyboard): persist immutable project history\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1bc728c529ae21297108ec097f939ce72e77c3c5","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T11:49:04-07:00","added":["apps/api-fastify/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql","apps/api-nestjs/prisma/migrations/20260823212000_add_storyboard_version_snapshots/migration.sql"],"removed":[],"modified":[".gitignore","CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","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/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"753d41978517db6031c10afef2a9a1897f6f7481","message":"fix(models): restore OCR inference and reject LFS pointers\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/753d41978517db6031c10afef2a9a1897f6f7481","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-23T11:35:43-07:00","added":[],"removed":[],"modified":["CLAUDE.md","models/material-factory/manifest.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-models.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/download-material-models.mjs"]}],"total_commits":0,"head_commit":{"id":"e759f5e4509e93cc4968259cc6d6a64bc73c09f1","message":"feat(studio): connect script storyboard and video workflow\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/e759f5e4509e93cc4968259cc6d6a64bc73c09f1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-24T01:26:47-07:00","added":["apps/web/src/components/material-factory/PipelineFlow.tsx","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts"],"removed":[],"modified":[".claude/launch.json","CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/storyboard-director.ts","apps/web/src/store/useFactoryStore.ts","apps/web/tsconfig.json","packages/contracts/src/index.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-naming.mjs","services/model-sidecar/main.py"]},"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":8098,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-18T16:58: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
|
2
|
4
|
1787560925
|
1787561016
|
0
|
1787560925
|
1787561016
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23813
|
test: verify the content brief default candidates test: verify the content brief default candidates round...
|
57
|
5
|
governance.yml
|
180
|
5
|
0
|
refs/heads/main
|
dddfe03474a30345361b3509f30a0843724ffb47
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eb9f043fa4c56dae0d634c3b9de9b7de82514b24","after":"dddfe03474a30345361b3509f30a0843724ffb47","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/eb9f043fa4c56dae0d634c3b9de9b7de82514b24...dddfe03474a30345361b3509f30a0843724ffb47","commits":[{"id":"dddfe03474a30345361b3509f30a0843724ffb47","message":"test: verify the content brief default candidates round\n\nSeven heavy gates plus pnpm check pass on the isolated stack at source\nfingerprint 7b85b506; CLAUDE.md heavy rows re-marked accordingly.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dddfe03474a30345361b3509f30a0843724ffb47","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-09T19:54:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","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.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/director-workbench.mobile.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/image-creation-390.png","reports/image-creation-768.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-mobile-form.png","reports/image-edit-result.png","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/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-asset-dialog.desktop.png","reports/storyboard-asset-dialog.mobile.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-making.390.png","reports/template-making.768.png","reports/template-preview.edit.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-save-ready.GENERAL.png","reports/template-save-ready.SCENE.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.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":"24566351feb01ed76b5a7a2a136acadceabb4397","message":"feat(content): propose brief default candidates after the purpose is chosen\n\nSelecting a creation purpose now submits one BRIEF content task (debounced,\nbrand required, existing idempotency/receipt chain). Both backends parse the\nmodel's JSON object through the shared contentBriefSuggestionSchema: only the\neleven proposable fields survive, enum-invalid values, blanks and fact fields\n(purpose, lockedFacts, references, music) are dropped, and an unusable answer\nis a 422. The candidate dialog lists current vs proposed per field; empty or\ndefault fields are pre-ticked and only ticked fields are written into a new\n\"采用简报候选\" revision.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/24566351feb01ed76b5a7a2a136acadceabb4397","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-09T19:54:41-07:00","added":["docs/governance/log/2026-09-09-content-brief-candidates.md","reports/content-brief-candidates-2026-09-09/README.md"],"removed":[],"modified":["apps/api-fastify/src/modules/creative-project/content.service.ts","apps/api-fastify/test/content-workbench.integration.test.ts","apps/api-nestjs/src/creative-project/content.service.ts","apps/api-nestjs/test/content-workbench.integration.test.ts","apps/web/src/components/material-factory/ContentStudio.tsx","apps/web/src/components/material-factory/content-studio.module.css","docs/product/content-creation-workbench.md","packages/contracts/src/content.test.ts","packages/contracts/src/content.ts"]}],"total_commits":0,"head_commit":{"id":"dddfe03474a30345361b3509f30a0843724ffb47","message":"test: verify the content brief default candidates round\n\nSeven heavy gates plus pnpm check pass on the isolated stack at source\nfingerprint 7b85b506; CLAUDE.md heavy rows re-marked accordingly.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dddfe03474a30345361b3509f30a0843724ffb47","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-09T19:54:42-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","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.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/director-workbench.mobile.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.png","reports/image-creation-1440.png","reports/image-creation-390.png","reports/image-creation-768.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-mobile-form.png","reports/image-edit-result.png","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/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-asset-dialog.desktop.png","reports/storyboard-asset-dialog.mobile.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-making.390.png","reports/template-making.768.png","reports/template-preview.edit.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-save-ready.GENERAL.png","reports/template-save-ready.SCENE.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.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":827670,"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":8,"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-10T09:32: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
|
2
|
4
|
1789008925
|
1789008967
|
0
|
1789008924
|
1789008967
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23658
|
fix(web): add image edit source picker
|
57
|
5
|
governance.yml
|
29
|
5
|
0
|
refs/heads/main
|
7dbc94c8d2ab8ad4aff7fd0dd66f4397773fe27a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ec9d8fb606022dd0c65a2a3974b0f46e0e796029","after":"7dbc94c8d2ab8ad4aff7fd0dd66f4397773fe27a","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ec9d8fb606022dd0c65a2a3974b0f46e0e796029...7dbc94c8d2ab8ad4aff7fd0dd66f4397773fe27a","commits":[{"id":"7dbc94c8d2ab8ad4aff7fd0dd66f4397773fe27a","message":"fix(web): add image edit source picker\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7dbc94c8d2ab8ad4aff7fd0dd66f4397773fe27a","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-06T20:45:22-07:00","added":["apps/web/src/components/material-factory/ImageEditSourcePicker.tsx","docs/governance/log/2026-09-07-image-edit-source-picker.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/InpaintStudio.tsx"]}],"total_commits":0,"head_commit":{"id":"7dbc94c8d2ab8ad4aff7fd0dd66f4397773fe27a","message":"fix(web): add image edit source picker\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7dbc94c8d2ab8ad4aff7fd0dd66f4397773fe27a","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-06T20:45:22-07:00","added":["apps/web/src/components/material-factory/ImageEditSourcePicker.tsx","docs/governance/log/2026-09-07-image-edit-source-picker.md"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/InpaintStudio.tsx"]},"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":291504,"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-07T11:42: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
|
1
|
4
|
1788752821
|
1788752909
|
0
|
1788752820
|
1788752909
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23835
|
chore(reports): refresh clean static evidence @ 35 chore(reports): refresh clean static evidence @ 35de733...
|
54
|
5
|
governance.yml
|
37
|
5
|
0
|
refs/heads/main
|
cd9c26f20dce96891809f7888872abfe7f3771a1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ed6561882ae52d6d0f2b6fd5429382e85b4f12ab","after":"cd9c26f20dce96891809f7888872abfe7f3771a1","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/ed6561882ae52d6d0f2b6fd5429382e85b4f12ab...cd9c26f20dce96891809f7888872abfe7f3771a1","commits":[{"id":"cd9c26f20dce96891809f7888872abfe7f3771a1","message":"chore(reports): refresh clean static evidence @ 35de733\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/cd9c26f20dce96891809f7888872abfe7f3771a1","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-10T07:18:24-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"35de733fd96b69f0dd89b8a800f0c94f3bac5ab2","message":"docs: record clean commit acceptance @ 17b8276(v0.16.1 pin 形态适配:runtime 288 / tenantRlsEnforced=1;UI 4×11)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/35de733fd96b69f0dd89b8a800f0c94f3bac5ab2","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-10T07:17:39-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-differential.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"]},{"id":"17b82766b7e6ccb038bc0664af6967f052904657","message":"fix(gates): 差分 runner 每次经 turbo 构建 contracts,不再以陈旧 dist 跳过(Scope 试点:剥离后旧 dist 让 RLS 启动探测按旧表清单拒绝)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/17b82766b7e6ccb038bc0664af6967f052904657","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-10T07:14:20-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","scripts/check-conformance-differential.mjs"]},{"id":"bb8623b32363312d9fb05831a820a8bb811048eb","message":"fix(gates): pin 形态在 packages/contracts/node_modules 下查已安装的 @juhai/kernel(pnpm 不 hoist 到根)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/bb8623b32363312d9fb05831a820a8bb811048eb","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-10T07:10:11-07:00","added":[],"removed":[],"modified":["scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs"]},{"id":"7e44814d5dbe81c00274fdf0c2a2e7b0956ad1ef","message":"fix(gates): 派生仓 pin @juhai/kernel 形态适配(0.16.1)——F10/F11 pin 模式、contract-consumers 查已安装包、runner 只构建 contracts\n\nScope 平台试点第一轮回灌:无 packages/kernel 源码的派生仓此前在 contract-consumers / fork-readiness / turbo filter 三处直接红。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/7e44814d5dbe81c00274fdf0c2a2e7b0956ad1ef","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-10T07:08:39-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","COMPATIBILITY.md","package.json","packages/contracts/package.json","packages/kernel/package.json","scripts/check-conformance-differential.mjs","scripts/check-contract-consumers.mjs","scripts/check-fork-readiness.mjs","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"cd9c26f20dce96891809f7888872abfe7f3771a1","message":"chore(reports): refresh clean static evidence @ 35de733\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/cd9c26f20dce96891809f7888872abfe7f3771a1","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-10T07:18:24-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.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/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5087,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-10T21:59:53+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1789049913
|
1789050004
|
0
|
1789049912
|
1789050036
|
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
|
|
23786
|
docs: record verified first and last frame dialog docs: record verified first and last frame dialog rollout...
|
57
|
5
|
governance.yml
|
156
|
5
|
0
|
refs/heads/main
|
ab568e701b98d0e678ee9af7b1c56ccf1937e576
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ed9b5df870bf72edcc8be883dec811b649aa13db","after":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ed9b5df870bf72edcc8be883dec811b649aa13db...ab568e701b98d0e678ee9af7b1c56ccf1937e576","commits":[{"id":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","message":"docs: record verified first and last frame dialog rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ab568e701b98d0e678ee9af7b1c56ccf1937e576","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-09T04:25:11-07:00","added":["docs/releases/2026-09-09-storyboard-frames1.md","reports/storyboard-frame-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.json"]}],"total_commits":0,"head_commit":{"id":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","message":"docs: record verified first and last frame dialog rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ab568e701b98d0e678ee9af7b1c56ccf1937e576","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-09T04:25:11-07:00","added":["docs/releases/2026-09-09-storyboard-frames1.md","reports/storyboard-frame-dialog-20260909/live-verification.json"],"removed":[],"modified":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","docs/releases/current.md","reports/governance-docs.latest.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/summary.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":774044,"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":8,"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-09T19:17:40+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788953118
|
1788953158
|
0
|
1788953117
|
1788953158
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23708
|
docs(marketing): record product poster design and docs(marketing): record product poster design and generation prompt...
|
57
|
5
|
governance.yml
|
79
|
5
|
0
|
refs/heads/main
|
1b6c295eb89e80a3b158d4a94d455790d6f97b15
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"edf81b7af0339292012403cd9ba54c3031e3dd99","after":"1b6c295eb89e80a3b158d4a94d455790d6f97b15","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/edf81b7af0339292012403cd9ba54c3031e3dd99...1b6c295eb89e80a3b158d4a94d455790d6f97b15","commits":[{"id":"1b6c295eb89e80a3b158d4a94d455790d6f97b15","message":"docs(marketing): record product poster design and generation prompt\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1b6c295eb89e80a3b158d4a94d455790d6f97b15","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:50:23-07:00","added":["docs/marketing/product-poster-2026-09-08.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"1b6c295eb89e80a3b158d4a94d455790d6f97b15","message":"docs(marketing): record product poster design and generation prompt\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1b6c295eb89e80a3b158d4a94d455790d6f97b15","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:50:23-07:00","added":["docs/marketing/product-poster-2026-09-08.md"],"removed":[],"modified":[]},"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":649267,"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:48:59+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788889839
|
1788889877
|
0
|
1788889838
|
1788889877
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23602
|
docs(governance): C241 快照锚点刷新至 eefb0fe——纯报告刷新提交打穿 docs(governance): C241 快照锚点刷新至 eefb0fe——纯报告刷新提交打穿 C232 自指窗令主干 run 33515811391 红...
|
76
|
5
|
governance.yml
|
28
|
5
|
0
|
refs/heads/main
|
019f721377c4a8970dfc4064886129b1cbcbd089
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eefb0fed0ca13cafe27e806924d4cc2f19154087","after":"019f721377c4a8970dfc4064886129b1cbcbd089","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/eefb0fed0ca13cafe27e806924d4cc2f19154087...019f721377c4a8970dfc4064886129b1cbcbd089","commits":[{"id":"019f721377c4a8970dfc4064886129b1cbcbd089","message":"docs(governance): C241 快照锚点刷新至 eefb0fe——纯报告刷新提交打穿 C232 自指窗令主干 run 33515811391 红\n\n- 发布状态快照/ci-gate 行/G14 三处同源更新:两远端 tip eefb0fe,最近共同 clean CI 89b2ade(run 33301191846 15 job 全绿)\n- 锚点纪律升格:推送批次最后一个提交(含只刷新 reports/ 的提交)必须刷新锚点;收尾清单新增推送前 docs-truth:assert\n- 登记 C241 判责(含 eefb0fe 带入两次运行混杂的静态子报告);证据新鲜度三行对齐真实报告日期与作用域\n- 产品 Host web 的 playwright e2e-results.json 不再入库(与 apps/web 同口径)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/019f721377c4a8970dfc4064886129b1cbcbd089","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-02T08:06:27-07:00","added":[],"removed":["products/juhai.hr/host/web/e2e-results.json"],"modified":[".gitignore","CLAUDE.md","docs/governance-experience.md"]}],"total_commits":0,"head_commit":{"id":"019f721377c4a8970dfc4064886129b1cbcbd089","message":"docs(governance): C241 快照锚点刷新至 eefb0fe——纯报告刷新提交打穿 C232 自指窗令主干 run 33515811391 红\n\n- 发布状态快照/ci-gate 行/G14 三处同源更新:两远端 tip eefb0fe,最近共同 clean CI 89b2ade(run 33301191846 15 job 全绿)\n- 锚点纪律升格:推送批次最后一个提交(含只刷新 reports/ 的提交)必须刷新锚点;收尾清单新增推送前 docs-truth:assert\n- 登记 C241 判责(含 eefb0fe 带入两次运行混杂的静态子报告);证据新鲜度三行对齐真实报告日期与作用域\n- 产品 Host web 的 playwright e2e-results.json 不再入库(与 apps/web 同口径)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/019f721377c4a8970dfc4064886129b1cbcbd089","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-02T08:06:27-07:00","added":[],"removed":["products/juhai.hr/host/web/e2e-results.json"],"modified":[".gitignore","CLAUDE.md","docs/governance-experience.md"]},"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":78252,"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-01T21:50: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
|
2
|
60
|
1788361595
|
1788362702
|
0
|
1788361593
|
1788362702
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23841
|
test: verify the script other-assets round
|
57
|
5
|
governance.yml
|
194
|
5
|
0
|
refs/heads/main
|
8e703347f507d2afa17667105fc83e11a9c66ee6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f07dca96879699117ca082bd7164703b715f9f1e","after":"8e703347f507d2afa17667105fc83e11a9c66ee6","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f07dca96879699117ca082bd7164703b715f9f1e...8e703347f507d2afa17667105fc83e11a9c66ee6","commits":[{"id":"8e703347f507d2afa17667105fc83e11a9c66ee6","message":"test: verify the script other-assets round\n\nSeven gates plus the static check passed on an isolated stack for\nfingerprint c6b01fd5… (main f07dca96 + four script role kinds with OTHER,\nstoryboard propIds slot for other assets, duplicate-key rejection, role\nsummaries on the generated event). The first static run was cut off at\nlint and was rerun in full. CLAUDE.md heavy-gate rows, reports, the\nspecialty README and the governance log follow.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e703347f507d2afa17667105fc83e11a9c66ee6","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-10T15:35:22-07:00","added":["docs/governance/log/2026-09-10-script-other-assets.md","reports/script-other-assets-2026-09-10/README.md"],"removed":[],"modified":["CLAUDE.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.images-desktop.png","reports/content-detail.images-factual-dialog-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1440.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","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-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1440.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","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.mobile.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.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":"acb9187a18f36219ab4bdf0ad91db1392ba8ad8c","message":"docs(script): glossary entry and enum migration plan for other assets\n\nThe domain glossary lists OTHER as the fourth storyboard visual asset\nkind (isomorphic with scriptRole.roleType), and the release note records\nwhy the script_role_type enum extension cannot ship through release.py's\nschema-unchanged / additive-new-tables path: it needs the r25-style\nrehearsed switch, with the rollback boundary stated (no OTHER rows yet).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/acb9187a18f36219ab4bdf0ad91db1392ba8ad8c","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-10T15:35:21-07:00","added":["docs/releases/2026-09-10-script-other-assets-migration-plan.md"],"removed":[],"modified":["docs/domain-glossary.md"]},{"id":"f970f7e82958d59a8242b085d24cfb1d728b7935","message":"feat(script): extract other assets as a fourth material category\n\nScript roles and storyboard visual assets now share four kinds:\nCHARACTER / PROP / SCENE / OTHER. OTHER holds visual assets that must stay\nconsistent across shots but fit none of the first three (brand marks and\nsignage, vehicles, full looks, effects). The extraction prompt derives its\nclassification rules and appearance hints from SCRIPT_ROLE_TYPE_GUIDES,\nadds merge / coverage discipline, and the mode-locked draft schema rejects\nduplicate role keys instead of failing at the unique index. Both backends\nrecord per-type counts and unreferenced keys on the generated event.\n\nStoryboard side: OTHER assets travel through the shot propIds slot\n(STORYBOARD_PROP_SLOT_KINDS), are compiled as a separate reference block,\nand keep their names as visual motifs. Both Prisma schemas extend the\nscript_role_type enum with an identical additive migration.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f970f7e82958d59a8242b085d24cfb1d728b7935","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-10T07:42:38-07:00","added":["apps/api-fastify/prisma/migrations/20260910120000_script_role_other_asset/migration.sql","apps/api-nestjs/prisma/migrations/20260910120000_script_role_other_asset/migration.sql","packages/contracts/src/script-other-assets.test.ts"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/test/script-reference-upload.integration.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/script-reference-upload.integration.test.ts","apps/web/src/components/material-factory/RoleConfirmPanel.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/StoryboardVisualAssetImport.tsx","apps/web/src/components/material-factory/storyboard-visual-assets.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/script.ts","packages/contracts/src/storyboard-image.test.ts","packages/contracts/src/storyboard-image.ts","packages/contracts/src/storyboard-llm.test.ts","packages/contracts/src/storyboard-llm.ts","packages/contracts/src/storyboard.ts","scripts/check-ui-acceptance.mjs","scripts/lib/storyboard-ui-fixture.mjs","scripts/migration-history.json","scripts/storyboard-visual-assets.test.mjs"]}],"total_commits":0,"head_commit":{"id":"8e703347f507d2afa17667105fc83e11a9c66ee6","message":"test: verify the script other-assets round\n\nSeven gates plus the static check passed on an isolated stack for\nfingerprint c6b01fd5… (main f07dca96 + four script role kinds with OTHER,\nstoryboard propIds slot for other assets, duplicate-key rejection, role\nsummaries on the generated event). The first static run was cut off at\nlint and was rerun in full. CLAUDE.md heavy-gate rows, reports, the\nspecialty README and the governance log follow.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e703347f507d2afa17667105fc83e11a9c66ee6","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-10T15:35:22-07:00","added":["docs/governance/log/2026-09-10-script-other-assets.md","reports/script-other-assets-2026-09-10/README.md"],"removed":[],"modified":["CLAUDE.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.images-desktop.png","reports/content-detail.images-factual-dialog-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1440.png","reports/image-edit-1135.png","reports/image-edit-1440.png","reports/image-edit-390.png","reports/image-edit-768.png","reports/image-edit-result.png","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-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1440.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","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.mobile.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-home.mobile.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":855595,"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":11,"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-10T20:51: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
|
2
|
4
|
1789079752
|
1789079796
|
0
|
1789079752
|
1789079796
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23523
|
feat(governance): harden formal production trust b feat(governance): harden formal production trust boundaries...
|
57
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
8e23fd115535dda184b584cb62396fa8286ef383
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f094101357dc511e450e0e18fab5c91baaed9865","after":"8e23fd115535dda184b584cb62396fa8286ef383","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f094101357dc511e450e0e18fab5c91baaed9865...8e23fd115535dda184b584cb62396fa8286ef383","commits":[{"id":"8e23fd115535dda184b584cb62396fa8286ef383","message":"feat(governance): harden formal production trust boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e23fd115535dda184b584cb62396fa8286ef383","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:46:37-07:00","added":["apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","reports/production-security.latest.json","scripts/check-production-security.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","reports/adversarial-acceptance-audit.latest.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","message":"feat: 完善分镜导演终审与对抗治理\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T11:55:23-07:00","added":["Codex 图像 2026年8月24日 02_24_17.jpg","apps/api-fastify/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-fastify/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-fastify/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/api-nestjs/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-nestjs/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-nestjs/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/web/src/components/material-factory/CreativeSupportSkills.tsx","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","packages/contracts/src/creative-support.test.ts","packages/contracts/src/creative-support.ts","packages/contracts/src/director-spec.test.ts","packages/contracts/src/director-spec.ts","reports/adversarial-acceptance-audit.latest.md","reports/storyboard-director-guard.latest.json","scripts/check-storyboard-director-guard.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/package.json","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","package.json","packages/contracts/src/index.ts","packages/contracts/src/material.ts","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/script.ts","packages/contracts/src/storyboard.ts","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"8e23fd115535dda184b584cb62396fa8286ef383","message":"feat(governance): harden formal production trust boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e23fd115535dda184b584cb62396fa8286ef383","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:46:37-07:00","added":["apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","reports/production-security.latest.json","scripts/check-production-security.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","reports/adversarial-acceptance-audit.latest.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.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":44687,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-08-26T00:40:46+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
|
1
|
4
|
1787705227
|
1787705287
|
0
|
1787705225
|
1787705287
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23893
|
Merge github/main (PR #5 merge commit 4fb6f15) int Merge github/main (PR #5 merge commit 4fb6f15) into main...
|
116
|
5
|
platform.yml
|
19
|
5
|
0
|
refs/heads/main
|
bb38f4cd0f55cd2cb76723ca12f26c19414a1817
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f0956259a231da48063f98a22ad35b52a3699916","after":"bb38f4cd0f55cd2cb76723ca12f26c19414a1817","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/f0956259a231da48063f98a22ad35b52a3699916...bb38f4cd0f55cd2cb76723ca12f26c19414a1817","commits":[{"id":"bb38f4cd0f55cd2cb76723ca12f26c19414a1817","message":"Merge github/main (PR #5 merge commit 4fb6f15) into main\n\nGitHub main 受保护只能经 PR 合入,本地 main 在 PR #5 合并期间又前进了 adce2fa / f095625;本合并提交把两侧历史接回一条线,树与 f095625 完全相同,不改任何文件。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bb38f4cd0f55cd2cb76723ca12f26c19414a1817","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-12T03:33:45-07:00","added":[],"removed":[],"modified":[]},{"id":"4fb6f15be157b9bb8254575473695cec6fc03ca2","message":"Merge pull request #5 from laoluojuhai/sync/main-20260912-8a95879\n\nsync(main): 推平本地 main → GitHub(候选回写 9276c8d + 六模块失败关闭夹具 8a95879)","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4fb6f15be157b9bb8254575473695cec6fc03ca2","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T03:32:25-07:00","added":["governance/fixtures/module-ai-gateway.suite.json","governance/fixtures/module-audit.suite.json","governance/fixtures/module-credential.suite.json","governance/fixtures/module-fact.suite.json","governance/fixtures/module-permission.suite.json","governance/fixtures/module-scope.suite.json","governance/test/platform-fixtures.test.mjs","runtime/modules/ai-gateway/src/domain/fixture-evaluator.ts","runtime/modules/ai-gateway/test/fixtures/ai-gateway.fixtures.json","runtime/modules/ai-gateway/test/negative/ai-gateway.fixtures.test.ts","runtime/modules/audit/src/domain/fixture-evaluator.ts","runtime/modules/audit/test/fixtures/audit.fixtures.json","runtime/modules/audit/test/negative/audit.fixtures.test.ts","runtime/modules/credential/src/domain/fixture-evaluator.ts","runtime/modules/credential/test/fixtures/credential.fixtures.json","runtime/modules/credential/test/negative/credential.fixtures.test.ts","runtime/modules/fact/src/domain/fixture-evaluator.ts","runtime/modules/fact/test/fixtures/fact.fixtures.json","runtime/modules/fact/test/negative/fact.fixtures.test.ts","runtime/modules/permission/src/domain/fixture-evaluator.ts","runtime/modules/permission/test/fixtures/permission.fixtures.json","runtime/modules/permission/test/negative/permission.fixtures.test.ts","runtime/modules/scope/src/domain/fixture-evaluator.ts","runtime/modules/scope/test/fixtures/scope.fixtures.json","runtime/modules/scope/test/negative/scope.fixtures.test.ts"],"removed":[],"modified":[".github/workflows/platform.yml","contracts/candidates/README.md","contracts/candidates/facts/AiActionGoverned.v1.json","contracts/candidates/facts/AuditAppended.v1.json","contracts/candidates/facts/FactPersisted.v1.json","contracts/candidates/facts/GrantChanged.v1.json","contracts/candidates/facts/OrganizationUnitMoved.v1.json","contracts/candidates/facts/PermissionInvalidated.v1.json","contracts/candidates/facts/ScopeSnapshotPublished.v1.json","contracts/candidates/facts/ServiceCredentialIssued.v1.json","contracts/candidates/facts/ServiceCredentialRevoked.v1.json","contracts/candidates/facts/SessionRevoked.v1.json","contracts/candidates/facts/StoreOrgAssignmentChanged.v1.json","governance/check-fixtures.mjs","package.json","runtime/modules/ai-gateway/src/domain/index.ts","runtime/modules/audit/src/domain/index.ts","runtime/modules/credential/src/domain/index.ts","runtime/modules/fact/src/domain/index.ts","runtime/modules/permission/src/domain/index.ts","runtime/modules/scope/src/domain/index.ts"]}],"total_commits":0,"head_commit":{"id":"bb38f4cd0f55cd2cb76723ca12f26c19414a1817","message":"Merge github/main (PR #5 merge commit 4fb6f15) into main\n\nGitHub main 受保护只能经 PR 合入,本地 main 在 PR #5 合并期间又前进了 adce2fa / f095625;本合并提交把两侧历史接回一条线,树与 f095625 完全相同,不改任何文件。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/bb38f4cd0f55cd2cb76723ca12f26c19414a1817","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-12T03:33:45-07:00","added":[],"removed":[],"modified":[]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":3499,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":4,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T18:32:36+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
|
10
|
0
|
1789209470
|
0
|
1789209229
|
1789209470
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23635
|
docs(governance): 快照记录 run 33835310370——f0ccb47 St docs(governance): 快照记录 run 33835310370——f0ccb47 Static + Runtime/UI 绿、入职恢复用例 CI 通过、13/15 job 绿;锚点刷新至 f0ccb47...
|
76
|
5
|
governance.yml
|
37
|
5
|
0
|
refs/heads/main
|
9159f925070e50ba4126f448cb7755396e4a66ac
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f0ccb47b6ee3f55638f9941477a83f05669d40a1","after":"9159f925070e50ba4126f448cb7755396e4a66ac","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/f0ccb47b6ee3f55638f9941477a83f05669d40a1...9159f925070e50ba4126f448cb7755396e4a66ac","commits":[{"id":"9159f925070e50ba4126f448cb7755396e4a66ac","message":"docs(governance): 快照记录 run 33835310370——f0ccb47 Static + Runtime/UI 绿、入职恢复用例 CI 通过、13/15 job 绿;锚点刷新至 f0ccb47\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9159f925070e50ba4126f448cb7755396e4a66ac","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-03T22:14:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","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":"9159f925070e50ba4126f448cb7755396e4a66ac","message":"docs(governance): 快照记录 run 33835310370——f0ccb47 Static + Runtime/UI 绿、入职恢复用例 CI 通过、13/15 job 绿;锚点刷新至 f0ccb47\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9159f925070e50ba4126f448cb7755396e4a66ac","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-03T22:14:53-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","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":81698,"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-04T12:02:00+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
32
|
1788498900
|
1788499169
|
0
|
1788498900
|
1788499171
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23917
|
Merge branch 'main' into feat/client-ident Merge branch 'main' into feat/client-identity...
|
116
|
5
|
platform.yml
|
39
|
5
|
0
|
refs/heads/main
|
fa3f105cf5e845bbec0378eb1f12c2c7fd935033
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f1404780a55c8cf7ab4ab0b98386c071169dc78a","after":"fa3f105cf5e845bbec0378eb1f12c2c7fd935033","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/f1404780a55c8cf7ab4ab0b98386c071169dc78a...fa3f105cf5e845bbec0378eb1f12c2c7fd935033","commits":[{"id":"fa3f105cf5e845bbec0378eb1f12c2c7fd935033","message":"Merge branch 'main' into feat/client-identity\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/fa3f105cf5e845bbec0378eb1f12c2c7fd935033","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:55:23-07:00","added":["docs/staging晋级操作说明.md","governance/check-promotion.mjs","governance/test/promotion.test.mjs","stack/promotion/promotion-record.schema.json","stack/promotion/promotion-record.template.json","stack/promotion/target-env-signoff.template.json","stack/provision/openbao-provision.json","stack/provision/openbao-provision.sh","stack/reports/openbao-smoke.2026-09-12.json"],"removed":[],"modified":["README.md","docs/runbook.md","governance/README.md","package.json","stack/README.md","stack/compose.yaml"]},{"id":"4b563df617da8051d598fefbf8bf284ae013f366","message":"feat(governance): PF-23 staging 晋级流程草案——晋级记录 Schema / 模板 / 签收位 P1—P9 + check-promotion R1—R9(DEC-024 A / DEC-026 批准记录 2026-09-12)\n\n- stack/promotion/promotion-record.schema.json:晋级记录 v1(manifest / candidate / checks / approvals / rollback / signoff / waivers / preview)\n- stack/promotion/target-env-signoff.template.json:目标环境签收位 P1—P9(取自 OS deploy/production/target-env-signoff.json,改基础设施口径,不登记实名)\n- stack/promotion/promotion-record.template.json:staging 记录模板\n- governance/check-promotion.mjs:R1 形状 / R2 级序 dev→test→staging→prod(preview←candidate)/ R3 同 digest(记录 = 候选 = Manifest images.runtime.digest,prod 禁止 rebuild)/ R4 级别门槛 / R5 检查项 / R6 审批角色 / R7 回滚演练 ≤ 600 s / R8 preview 上限 / R9 签收项在模板内 → reports/promotion.latest.json;根脚本 promotion:check\n- governance/test/promotion.test.mjs 18 例(治理套件 144/144)\n- docs/staging晋级操作说明.md:级序与门槛、十步操作、记录格式、恢复演练、首次晋级前置、偏差;runbook §5 / §10、governance / stack / 仓 README 同步\n- 无真实晋级记录:Manifest 仍 partial 且 images.runtime.digest=null\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4b563df617da8051d598fefbf8bf284ae013f366","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:54:53-07:00","added":["docs/staging晋级操作说明.md","governance/check-promotion.mjs","governance/test/promotion.test.mjs","stack/promotion/promotion-record.schema.json","stack/promotion/promotion-record.template.json","stack/promotion/target-env-signoff.template.json"],"removed":[],"modified":["README.md","docs/runbook.md","governance/README.md","package.json","stack/README.md"]},{"id":"ad294902eb3bd88b58b5a4e056d892c8a311cd65","message":"Merge pull request #13 from laoluojuhai/feat/client-identity\n\nfeat(identity): add verified token consumer and validate stack integration","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/ad294902eb3bd88b58b5a4e056d892c8a311cd65","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T06:53:37-07:00","added":["docs/PF-07身份客户端实现记录-2026-09-12.md","reports/client-identity.latest.json","runtime/clients/identity/README.md","runtime/clients/identity/contract-import.json","runtime/clients/identity/package.json","runtime/clients/identity/src/access-token.v1.schema.json","runtime/clients/identity/src/index.test.ts","runtime/clients/identity/src/index.ts","runtime/clients/identity/tsconfig.json","runtime/modules/identity/test/fixtures/README.md","runtime/modules/identity/test/fixtures/access-token.v1.fixtures.json"],"removed":[],"modified":["runtime/clients/README.md","runtime/pnpm-lock.yaml","stack/provision/redpanda-topics.sh"]},{"id":"a66461cda48132fb6a863b64f705b12e11460ce4","message":"fix(stack): delimit broker variable in candidate dry-run\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a66461cda48132fb6a863b64f705b12e11460ce4","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:42:54-07:00","added":[],"removed":[],"modified":["docs/PF-07身份客户端实现记录-2026-09-12.md","stack/provision/redpanda-topics.sh"]},{"id":"6b4e0d146b3d8694bf699c898c9ba80df9bb478a","message":"Merge commit '44f921ff30c0579e914befcdfb77cd569513cdb6' into feat/client-identity\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/6b4e0d146b3d8694bf699c898c9ba80df9bb478a","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:41:54-07:00","added":["stack/provision/redpanda-topics.json","stack/provision/redpanda-topics.sh"],"removed":["stack/provision/nats-streams.json","stack/provision/nats-streams.sh"],"modified":["docs/runbook.md","reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json","stack/README.md","stack/compose.yaml"]}],"total_commits":0,"head_commit":{"id":"fa3f105cf5e845bbec0378eb1f12c2c7fd935033","message":"Merge branch 'main' into feat/client-identity\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/fa3f105cf5e845bbec0378eb1f12c2c7fd935033","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:55:23-07:00","added":["docs/staging晋级操作说明.md","governance/check-promotion.mjs","governance/test/promotion.test.mjs","stack/promotion/promotion-record.schema.json","stack/promotion/promotion-record.template.json","stack/promotion/target-env-signoff.template.json","stack/provision/openbao-provision.json","stack/provision/openbao-provision.sh","stack/reports/openbao-smoke.2026-09-12.json"],"removed":[],"modified":["README.md","docs/runbook.md","governance/README.md","package.json","stack/README.md","stack/compose.yaml"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":4678,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T21:46:32+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789221372
|
1789221408
|
0
|
1789221370
|
1789221432
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23754
|
docs(release): record verified model cost backfill docs(release): record verified model cost backfill deployment...
|
57
|
5
|
governance.yml
|
125
|
5
|
0
|
refs/heads/main
|
5cb7aaabb50aed6cefa730622964676c007e9248
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f15d41f2d86247205036b82833fd47f2250136b9","after":"5cb7aaabb50aed6cefa730622964676c007e9248","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f15d41f2d86247205036b82833fd47f2250136b9...5cb7aaabb50aed6cefa730622964676c007e9248","commits":[{"id":"5cb7aaabb50aed6cefa730622964676c007e9248","message":"docs(release): record verified model cost backfill deployment\n\nrelease-20260908-cost-backfill1 at main f15d41f (fingerprint 39338b0d…), standard path, no schema change,\n11 backups verified, rollback source video-delivery2 kept; live metrics cost block and 模型费用 panel checked read-only.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5cb7aaabb50aed6cefa730622964676c007e9248","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-08T20:16:50-07:00","added":["docs/releases/2026-09-08-cost-backfill1.md"],"removed":[],"modified":["docs/governance/log/2026-09-08-model-cost-backfill.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"]}],"total_commits":0,"head_commit":{"id":"5cb7aaabb50aed6cefa730622964676c007e9248","message":"docs(release): record verified model cost backfill deployment\n\nrelease-20260908-cost-backfill1 at main f15d41f (fingerprint 39338b0d…), standard path, no schema change,\n11 backups verified, rollback source video-delivery2 kept; live metrics cost block and 模型费用 panel checked read-only.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5cb7aaabb50aed6cefa730622964676c007e9248","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-08T20:16:50-07:00","added":["docs/releases/2026-09-08-cost-backfill1.md"],"removed":[],"modified":["docs/governance/log/2026-09-08-model-cost-backfill.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"]},"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":768896,"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-09T10:51:58+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788923817
|
1788923858
|
0
|
1788923815
|
1788923858
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23608
|
docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 337 docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 33707057068 三 job 全绿,两远端对齐...
|
54
|
5
|
governance.yml
|
25
|
5
|
0
|
refs/heads/main
|
06b8b98f483723103dcd01449e6ec6772ad10c13
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f17d34a463e70366161f4603e53a4b2800e9a241","after":"06b8b98f483723103dcd01449e6ec6772ad10c13","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/f17d34a463e70366161f4603e53a4b2800e9a241...06b8b98f483723103dcd01449e6ec6772ad10c13","commits":[{"id":"06b8b98f483723103dcd01449e6ec6772ad10c13","message":"docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 33707057068 三 job 全绿,两远端对齐\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/06b8b98f483723103dcd01449e6ec6772ad10c13","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-02T19:23:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"06b8b98f483723103dcd01449e6ec6772ad10c13","message":"docs(governance): 回灌远端绿盘——f17d34a 的 GitHub run 33707057068 三 job 全绿,两远端对齐\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/06b8b98f483723103dcd01449e6ec6772ad10c13","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-02T19:23:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":3032,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-03T10:17: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":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
12
|
1788402257
|
1788402300
|
0
|
1788402192
|
1788402309
|
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
|
|
23836
|
docs: record clean acceptance @ 246f04b(sync/v0.16 docs: record clean acceptance @ 246f04b(sync/v0.16.0:runtime 169 / 差分 7×2 / tenantRlsEnforced=1;UI 4×5;地板按本仓收紧)...
|
106
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f2098f5213ec62df23b006803858802ee08ac663","after":"0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","compare_url":"https://gitea.g-hi.com/luoanwu/tenant-scope/compare/f2098f5213ec62df23b006803858802ee08ac663...0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","commits":[{"id":"0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","message":"docs: record clean acceptance @ 246f04b(sync/v0.16.0:runtime 169 / 差分 7×2 / tenantRlsEnforced=1;UI 4×5;地板按本仓收紧)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-10T07:19:55-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","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/framework-migration.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-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"246f04b6ab8966b1647697d8534220cd7a9c2ae8","message":"chore(sync): 迁入 0.16.1 差分 runner 修正(每次经 turbo 构建 contracts)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/246f04b6ab8966b1647697d8534220cd7a9c2ae8","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-10T07:15:41-07:00","added":[],"removed":[],"modified":["scripts/check-conformance-differential.mjs"]},{"id":"ac58209cc82659d7bbbfab8dce2ea11b01520c37","message":"chore(strip): 剥离示例域 orders(pnpm strip:domain;用户/作业/健康/实时基建保留)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/ac58209cc82659d7bbbfab8dce2ea11b01520c37","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-10T07:10:41-07:00","added":[],"removed":["apps/api-fastify/src/lib/orderMachine.ts","apps/api-fastify/src/modules/orders/orders.jobs.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/test/orders.integration.test.ts","apps/api-nestjs/src/orders/orders.controller.ts","apps/api-nestjs/src/orders/orders.job-handler.ts","apps/api-nestjs/src/orders/orders.module.ts","apps/api-nestjs/src/orders/orders.service.ts","apps/api-nestjs/src/statemachine/order.machine.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/web/src/components/OrdersPanel.tsx","packages/contracts/src/order.test.ts","packages/contracts/src/order.ts"],"modified":["apps/api-fastify/prisma/migrations/20260608150500_init/migration.sql","apps/api-fastify/prisma/migrations/20260911090000_tenant_rls/migration.sql","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20260608150500_init/migration.sql","apps/api-nestjs/prisma/migrations/20260911090000_tenant_rls/migration.sql","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/statemachine/index.ts","apps/api-nestjs/test/conformance.differential.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","conformance.matrix.json","docs/domain/owner-matrix.md","docs/strip-sample-domain.md","governance.registry.json","packages/contracts/src/sample.ts","reports/baseline.json"]},{"id":"8336c55910854c37a68c571e765becb93e2d12a3","message":"chore(sync): 迁入基础框架 v0.16.1(内核经 @juhai/kernel@0.16.1 pin,OS 产品样板移出,Scope 契约与 ScopeHealthResponse 保留)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/8336c55910854c37a68c571e765becb93e2d12a3","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-10T07:10:41-07:00","added":[".agents/skills/derived-project-framework-sync/scripts/rollback-migration.mjs",".npmrc","CHANGELOG.md","COMPATIBILITY.md","apps/api-fastify/prisma/migrations/20260910090000_outbox_request_context/migration.sql","apps/api-fastify/prisma/migrations/20260911090000_tenant_rls/migration.sql","apps/api-fastify/src/lib/alerts.ts","apps/api-fastify/src/lib/job-handlers.ts","apps/api-fastify/src/lib/platform-errors.ts","apps/api-fastify/src/lib/platform-ports.ts","apps/api-fastify/src/lib/request-context.ts","apps/api-fastify/src/lib/tenant-rls.ts","apps/api-fastify/src/modules/orders/orders.jobs.ts","apps/api-fastify/src/plugins/alerts.ts","apps/api-fastify/src/plugins/platform-ports.ts","apps/api-fastify/src/plugins/request-context.ts","apps/api-fastify/test/alerts.webhook.test.ts","apps/api-fastify/test/infra-url.test.ts","apps/api-fastify/test/tenant.rls.test.ts","apps/api-nestjs/prisma/migrations/20260910090000_outbox_request_context/migration.sql","apps/api-nestjs/prisma/migrations/20260911090000_tenant_rls/migration.sql","apps/api-nestjs/src/alerts/alerts.module.ts","apps/api-nestjs/src/common/alerts.ts","apps/api-nestjs/src/common/platform-errors.ts","apps/api-nestjs/src/common/request-context.ts","apps/api-nestjs/src/common/tenant-rls.ts","apps/api-nestjs/src/orders/orders.job-handler.ts","apps/api-nestjs/src/platform/platform-ports.module.ts","apps/api-nestjs/src/prisma/system-prisma.service.ts","apps/api-nestjs/src/queue/job-handlers.module.ts","apps/api-nestjs/test/alerts.webhook.test.ts","apps/api-nestjs/test/infra-url.test.ts","apps/api-nestjs/test/outbox.remediate.test.ts","apps/api-nestjs/test/tenant.rls.test.ts","docs/alerting.md","docs/strip-sample-domain.md","docs/tenant-rls.md","packages/contracts/src/kernel.ts","packages/contracts/src/layering.test.ts","packages/contracts/src/order.test.ts","packages/contracts/src/sample.ts","packages/contracts/src/scope-health.ts","scripts/db-roles.mjs","scripts/lib/strip-domain.mjs","scripts/lib/tenant-rls-roles.mjs","scripts/outbox-remediate.mjs","scripts/scaffold-derived.mjs","scripts/strip-domain.mjs"],"removed":["docs/os-product-extension.md","kernel.products.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/realtime-command.test.ts","packages/contracts/src/realtime-command.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/src/realtime.ts","packages/contracts/src/replay-buffer.test.ts","packages/contracts/src/replay-buffer.ts","packages/contracts/src/replay.test.ts","packages/contracts/src/replay.ts","packages/contracts/src/statemachine.test.ts","packages/contracts/src/statemachine.ts","packages/contracts/src/subscription.test.ts","packages/contracts/src/subscription.ts","packages/contracts/src/tenant.ts","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","scripts/check-os-product-compat.mjs","scripts/check-os-product-runtime.mjs"],"modified":[".agents/skills/derived-project-framework-sync/SKILL.md",".agents/skills/derived-project-framework-sync/assets/framework-migration.template.md",".agents/skills/derived-project-framework-sync/references/migration-protocol.md",".agents/skills/derived-project-framework-sync/scripts/plan-migration.mjs",".agents/skills/derived-project-framework-sync/scripts/record-migration.mjs",".github/pull_request_template.md",".github/workflows/governance.yml",".gitignore","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/infra-url.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/auth.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/routes/health.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/auth.jwt.test.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.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/prisma/seed.ts","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/auth/auth.guard.ts","apps/api-nestjs/src/common/infra-url.ts","apps/api-nestjs/src/common/logger.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/health/health.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/statemachine/index.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/auth.jwt.test.ts","apps/api-nestjs/test/conformance.differential.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/orders.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/ui/badge.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/realtime.ts","conformance.matrix.json","docs/README.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/standards/api-standard.md","docs/standards/database-standard.md","docs/standards/review-standard.md","governance.registry.json","governance.registry.schema.json","governance.rules.json","governance.rules.schema.json","package.json","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/order.ts","packages/contracts/src/user.ts","pnpm-lock.yaml","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-conformance-differential.mjs","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-governance-profile.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","turbo.json"]},{"id":"544f456dba7bdc815b8d6e8026a7554899373f87","message":"chore(reports): refresh final clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/544f456dba7bdc815b8d6e8026a7554899373f87","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-04T18:35:29-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.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"]}],"total_commits":0,"head_commit":{"id":"0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","message":"docs: record clean acceptance @ 246f04b(sync/v0.16.0:runtime 169 / 差分 7×2 / tenantRlsEnforced=1;UI 4×5;地板按本仓收紧)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/tenant-scope/commit/0a9a11a92a9e45d647e7feaea0bafe7cdc3d5f11","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-10T07:19:55-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","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/framework-migration.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-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"]},"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":1009,"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-03T11:18: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":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1789050295
|
1789050385
|
0
|
1789050294
|
1789050478
|
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
|
|
23538
|
Expand governance controls and cross-layer runtime Expand governance controls and cross-layer runtime validation...
|
84
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f2a674de3343d5031dee856edd261194709b727f","after":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/f2a674de3343d5031dee856edd261194709b727f...4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","commits":[{"id":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","message":"Expand governance controls and cross-layer runtime validation\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T06:17:02-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".dockerignore","Dockerfile","apps/api-fastify/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/src/plugins/api-error-handler.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/fixtures/outbox-multiprocess-worker.ts","apps/api-fastify/test/health.degraded.test.ts","apps/api-fastify/test/http-rate-limit.redis.test.ts","apps/api-fastify/test/job.failed.exhaustion.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-fastify/test/observability.otlp.test.ts","apps/api-fastify/test/outbox.lifecycle.test.ts","apps/api-fastify/test/outbox.multiprocess.test.ts","apps/api-nestjs/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-nestjs/src/auth/auth-request.ts","apps/api-nestjs/src/auth/auth.module.ts","apps/api-nestjs/src/auth/auth.service.ts","apps/api-nestjs/src/auth/authentication.guard.ts","apps/api-nestjs/src/common/api-exception.filter.ts","apps/api-nestjs/src/events/dead-letter-replay.ts","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/src/observability/observability.service.ts","apps/api-nestjs/src/ops/replay-dead-letter.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/backend.behavior.parity.test.ts","apps/api-nestjs/test/health.degraded.test.ts","apps/api-nestjs/test/job.failed.exhaustion.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","apps/api-nestjs/test/observability.otlp.test.ts","apps/api-nestjs/test/outbox.replay.test.ts","apps/api-nestjs/vitest.parity.config.ts","apps/web/next.config.mjs","compose.production.yml","docs/outbox-operations.md","docs/production-operations.md","packages/auth/package.json","packages/auth/src/auth.test.ts","packages/auth/src/http-rate-limit.ts","packages/auth/src/index.ts","packages/auth/tsconfig.json","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/redis-connection.test.ts","packages/contracts/src/redis-connection.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","packages/observability/package.json","packages/observability/src/index.ts","packages/observability/src/runtime.test.ts","packages/observability/src/runtime.ts","packages/observability/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827140000_add_knowledge_index_retry.sql","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827150000_add_knowledge_chunks.sql","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/disaster-recovery.latest.json","reports/knowledge-index.latest.json","reports/observability.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-failure-coverage.latest.json","scripts/check-agent-skill-sync.mjs","scripts/check-auth-governance.mjs","scripts/check-backend-behavior-parity.mjs","scripts/check-container-acceptance.mjs","scripts/check-disaster-recovery.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-observability-governance.mjs","scripts/check-outbox-operations.mjs","scripts/check-production-operations.mjs","scripts/check-report-provenance.mjs","scripts/check-runtime-failure-coverage.mjs","scripts/lib/governance-baseline.mjs"],"removed":["apps/web/next.config.ts"],"modified":[".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","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.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.module.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/src/orders/orders.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/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/components/RealtimeBar.tsx","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/components/KnowledgeWorkbench.tsx","apps/web/src/features/knowledge/hooks/use-knowledge.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","kernel.products.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/knowledge-retrieval.test.ts","packages/contracts/src/knowledge.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/tsconfig.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/retrieval.ts","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/os-product-live.latest.json","reports/os-product.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-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-migrations.mjs","scripts/check-os-product.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","turbo.json"]}],"total_commits":0,"head_commit":{"id":"4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","message":"Expand governance controls and cross-layer runtime validation\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/4459ca7bf19df30ae3879f2027b7fb05b3e3ba2d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T06:17:02-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".agents/skills/frontend-api-react/SKILL.md",".agents/skills/frontend-view-react/SKILL.md",".agents/skills/fullstack-7layer-react/SKILL.md",".agents/skills/zustand-store/SKILL.md",".dockerignore","Dockerfile","apps/api-fastify/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-fastify/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-fastify/src/modules/knowledge/knowledge-indexer.ts","apps/api-fastify/src/plugins/api-error-handler.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/test/auth.jwt.acceptance.test.ts","apps/api-fastify/test/fixtures/outbox-multiprocess-worker.ts","apps/api-fastify/test/health.degraded.test.ts","apps/api-fastify/test/http-rate-limit.redis.test.ts","apps/api-fastify/test/job.failed.exhaustion.test.ts","apps/api-fastify/test/knowledge-index.retry.test.ts","apps/api-fastify/test/observability.otlp.test.ts","apps/api-fastify/test/outbox.lifecycle.test.ts","apps/api-fastify/test/outbox.multiprocess.test.ts","apps/api-nestjs/prisma/migrations/20260827120000_add_knowledge_index_retry/migration.sql","apps/api-nestjs/prisma/migrations/20260827150000_add_knowledge_chunks/migration.sql","apps/api-nestjs/src/auth/auth-request.ts","apps/api-nestjs/src/auth/auth.module.ts","apps/api-nestjs/src/auth/auth.service.ts","apps/api-nestjs/src/auth/authentication.guard.ts","apps/api-nestjs/src/common/api-exception.filter.ts","apps/api-nestjs/src/events/dead-letter-replay.ts","apps/api-nestjs/src/knowledge/knowledge-index.service.ts","apps/api-nestjs/src/observability/observability.service.ts","apps/api-nestjs/src/ops/replay-dead-letter.ts","apps/api-nestjs/test/auth.jwt.acceptance.test.ts","apps/api-nestjs/test/backend.behavior.parity.test.ts","apps/api-nestjs/test/health.degraded.test.ts","apps/api-nestjs/test/job.failed.exhaustion.test.ts","apps/api-nestjs/test/knowledge-index.retry.test.ts","apps/api-nestjs/test/observability.otlp.test.ts","apps/api-nestjs/test/outbox.replay.test.ts","apps/api-nestjs/vitest.parity.config.ts","apps/web/next.config.mjs","compose.production.yml","docs/outbox-operations.md","docs/production-operations.md","packages/auth/package.json","packages/auth/src/auth.test.ts","packages/auth/src/http-rate-limit.ts","packages/auth/src/index.ts","packages/auth/tsconfig.json","packages/contracts/src/knowledge-index.test.ts","packages/contracts/src/redis-connection.test.ts","packages/contracts/src/redis-connection.ts","packages/knowledge-retrieval/src/indexing.test.ts","packages/knowledge-retrieval/src/indexing.ts","packages/observability/package.json","packages/observability/src/index.ts","packages/observability/src/runtime.test.ts","packages/observability/src/runtime.ts","packages/observability/tsconfig.json","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827140000_add_knowledge_index_retry.sql","products/juhai.knowledgecloud/migrations/juhai.knowledgecloud.core/20260827150000_add_knowledge_chunks.sql","products/juhai.knowledgecloud/src/indexing.ts","reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/disaster-recovery.latest.json","reports/knowledge-index.latest.json","reports/observability.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-failure-coverage.latest.json","scripts/check-agent-skill-sync.mjs","scripts/check-auth-governance.mjs","scripts/check-backend-behavior-parity.mjs","scripts/check-container-acceptance.mjs","scripts/check-disaster-recovery.mjs","scripts/check-knowledge-index-governance.mjs","scripts/check-observability-governance.mjs","scripts/check-outbox-operations.mjs","scripts/check-production-operations.mjs","scripts/check-report-provenance.mjs","scripts/check-runtime-failure-coverage.mjs","scripts/lib/governance-baseline.mjs"],"removed":["apps/web/next.config.ts"],"modified":[".claude/skills/business-module-intake/SKILL.md",".claude/skills/frontend-api-react/SKILL.md",".claude/skills/frontend-view-react/SKILL.md",".claude/skills/fullstack-7layer-react/SKILL.md",".claude/skills/fullstack-7layer-react/references/fullstack-react-templates.md",".claude/skills/zustand-store/SKILL.md","CLAUDE.md","README.md","apps/api-fastify/.env.example","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/routes/knowledge.ts","apps/api-fastify/src/routes/orders.ts","apps/api-fastify/src/routes/realtime-stats.ts","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/ws.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/outbox.concurrency.test.ts","apps/api-fastify/test/outbox.deadletter.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","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.gateway.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/realtime-stats.controller.ts","apps/api-nestjs/src/knowledge/knowledge.controller.ts","apps/api-nestjs/src/knowledge/knowledge.module.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/src/orders/orders.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/redis/redis.module.ts","apps/api-nestjs/src/sse/sse.controller.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/knowledge.integration.test.ts","apps/api-nestjs/test/outbox.concurrency.test.ts","apps/api-nestjs/test/outbox.deadletter.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/api-nestjs/vitest.config.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/package.json","apps/web/playwright.config.ts","apps/web/src/components/RealtimeBar.tsx","apps/web/src/features/knowledge/api/knowledge-api.ts","apps/web/src/features/knowledge/components/KnowledgeWorkbench.tsx","apps/web/src/features/knowledge/hooks/use-knowledge.ts","apps/web/src/store/realtime.ts","docs/README.md","docs/adr/0009-dual-backend-governance-parity.md","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/database-standard.md","governance.registry.json","governance.registry.schema.json","kernel.products.json","package.json","packages/contracts/src/index.ts","packages/contracts/src/knowledge-retrieval.test.ts","packages/contracts/src/knowledge.ts","packages/contracts/src/realtime-stats.ts","packages/contracts/tsconfig.json","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts","pnpm-lock.yaml","products/juhai.knowledgecloud/package.json","products/juhai.knowledgecloud/src/fastify.ts","products/juhai.knowledgecloud/src/index.ts","products/juhai.knowledgecloud/src/nestjs.ts","products/juhai.knowledgecloud/src/repository.ts","products/juhai.knowledgecloud/src/retrieval.ts","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/os-product-live.latest.json","reports/os-product.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-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-fork-readiness.mjs","scripts/check-migrations.mjs","scripts/check-os-product.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-statemachine-write-guard.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","turbo.json"]},"repository":{"id":84,"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-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":698,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.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-26T09:45:53+08:00","updated_at":"2026-08-26T09:47:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1787836636
|
1787836653
|
0
|
1787836636
|
1787836655
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23909
|
chore(reports): refresh clean static evidence @ f3 chore(reports): refresh clean static evidence @ f31db83(合并 GitHub main / PR #12 后:根链全绿,治理 126 / 运行时静态 100;报告冲突以重生成取代任一侧)...
|
116
|
5
|
platform.yml
|
35
|
5
|
0
|
refs/heads/main
|
77602cdf7a9911f9793643823f8874cd24dd1a2e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f31db83e710288e6b5c5069c7e2a82a2e3a10972","after":"77602cdf7a9911f9793643823f8874cd24dd1a2e","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/f31db83e710288e6b5c5069c7e2a82a2e3a10972...77602cdf7a9911f9793643823f8874cd24dd1a2e","commits":[{"id":"77602cdf7a9911f9793643823f8874cd24dd1a2e","message":"chore(reports): refresh clean static evidence @ f31db83(合并 GitHub main / PR #12 后:根链全绿,治理 126 / 运行时静态 100;报告冲突以重生成取代任一侧)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/77602cdf7a9911f9793643823f8874cd24dd1a2e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:29:22-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"77602cdf7a9911f9793643823f8874cd24dd1a2e","message":"chore(reports): refresh clean static evidence @ f31db83(合并 GitHub main / PR #12 后:根链全绿,治理 126 / 运行时静态 100;报告冲突以重生成取代任一侧)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/77602cdf7a9911f9793643823f8874cd24dd1a2e","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-12T06:29:22-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":4602,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":5,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T21:28:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
34
|
1789219908
|
1789219969
|
0
|
1789219765
|
1789220050
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23672
|
docs(release): record verified r30 logo generation docs(release): record verified r30 logo generation deployment...
|
57
|
5
|
governance.yml
|
43
|
5
|
0
|
refs/heads/main
|
5c5f53596f9a2708d0c44259cf34ec7b9a42c13d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f328e2ce1eb7ac1a7bacad695824ca809bb7677a","after":"5c5f53596f9a2708d0c44259cf34ec7b9a42c13d","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f328e2ce1eb7ac1a7bacad695824ca809bb7677a...5c5f53596f9a2708d0c44259cf34ec7b9a42c13d","commits":[{"id":"5c5f53596f9a2708d0c44259cf34ec7b9a42c13d","message":"docs(release): record verified r30 logo generation deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5c5f53596f9a2708d0c44259cf34ec7b9a42c13d","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-07T05:55:22-07:00","added":["docs/releases/2026-09-07-r30.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-07-logo-ai-button.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"]}],"total_commits":0,"head_commit":{"id":"5c5f53596f9a2708d0c44259cf34ec7b9a42c13d","message":"docs(release): record verified r30 logo generation deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5c5f53596f9a2708d0c44259cf34ec7b9a42c13d","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-07T05:55:22-07:00","added":["docs/releases/2026-09-07-r30.md"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-07-logo-ai-button.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"]},"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":625556,"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:49: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":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788785739
|
1788785770
|
0
|
1788785738
|
1788785770
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23771
|
docs(brand): record live haizan rollout
|
57
|
5
|
governance.yml
|
141
|
5
|
0
|
refs/heads/main
|
3cfab75162dc1cd724397fc086192678f095000f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f4a3dc4e46944684ef2dbd52788ccc2eba01d330","after":"3cfab75162dc1cd724397fc086192678f095000f","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f4a3dc4e46944684ef2dbd52788ccc2eba01d330...3cfab75162dc1cd724397fc086192678f095000f","commits":[{"id":"3cfab75162dc1cd724397fc086192678f095000f","message":"docs(brand): record live haizan rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3cfab75162dc1cd724397fc086192678f095000f","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-09T02:53:31-07:00","added":[],"removed":[],"modified":["reports/haizan-rename-20260909/README.md"]}],"total_commits":0,"head_commit":{"id":"3cfab75162dc1cd724397fc086192678f095000f","message":"docs(brand): record live haizan rollout\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3cfab75162dc1cd724397fc086192678f095000f","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-09T02:53:31-07:00","added":[],"removed":[],"modified":["reports/haizan-rename-20260909/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":770954,"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":8,"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-09T17:51: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
|
3
|
0
|
1788947977
|
0
|
1788947630
|
1788947977
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23814
|
docs(governance): 发布快照按 2026-09-10 晚 ls-remote 更新— docs(governance): 发布快照按 2026-09-10 晚 ls-remote 更新——两远端已到 f5b6f69(v0.5.0),v0.6.0 三提交未推送...
|
54
|
5
|
governance.yml
|
29
|
5
|
0
|
refs/heads/main
|
4a18e91045737eab943db36986074089b6c1923c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f5b6f69ce1f8d3e92e5decf64aef434d235ce4de","after":"4a18e91045737eab943db36986074089b6c1923c","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/f5b6f69ce1f8d3e92e5decf64aef434d235ce4de...4a18e91045737eab943db36986074089b6c1923c","commits":[{"id":"4a18e91045737eab943db36986074089b6c1923c","message":"docs(governance): 发布快照按 2026-09-10 晚 ls-remote 更新——两远端已到 f5b6f69(v0.5.0),v0.6.0 三提交未推送\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4a18e91045737eab943db36986074089b6c1923c","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-09T19:52:06-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"73c9031e503fda71451cce750e18cbfbc910035c","message":"chore(reports): refresh clean static evidence @ 7a9f675\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/73c9031e503fda71451cce750e18cbfbc910035c","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-09T19:49:53-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.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":"7a9f67596b2f9997cf46afb4ca113a3ce9c7a0a3","message":"docs: record clean commit acceptance @ c1af469(runtime 231 / 差分 9×2 零差异 / UI 10;地板 testsPassed 225→231、ownTestCases 222→228;G29 第一半经验回灌)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/7a9f67596b2f9997cf46afb4ca113a3ce9c7a0a3","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-09T19:49:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"]},{"id":"c1af4695da80550a56a0bf4e6629f840c6f5978f","message":"feat(context): 请求上下文贯通 Outbox → Redis → 消费者(I9-B)+ 平台端口束接入装配点(G29 第一半)\n\n- Outbox 新增可空 request_id / trace_id(两后端迁移 20260910090000_outbox_request_context);10 处写链同 tx 落入\n- RealtimeEnvelope 可选 context{requestId,traceId};dispatcher/重放从 outbox 行带出;schema 校验;README 与 docs-truth 断言同步\n- 队列载荷携带 context,两后端 worker restoreRequestContext 后处理\n- NestJS PlatformPortsModule(PLATFORM_PORTS) / Fastify app.platformPorts:默认 createFailClosedPlatformPorts\n- 矩阵 +HTTP-REQUEST-CONTEXT-003、PORTS-FAIL-CLOSED-001(matrixVersion 4);差分 DIFF-OUTBOX-001 含 request id 存在性\n- contracts 101/101、typecheck/lint/迁移/矩阵/静态 pnpm check 全绿;版本 0.6.0\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/c1af4695da80550a56a0bf4e6629f840c6f5978f","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-09T19:45:56-07:00","added":["apps/api-fastify/prisma/migrations/20260910090000_outbox_request_context/migration.sql","apps/api-fastify/src/plugins/platform-ports.ts","apps/api-nestjs/prisma/migrations/20260910090000_outbox_request_context/migration.sql","apps/api-nestjs/src/platform/platform-ports.module.ts"],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/lib/request-context.ts","apps/api-fastify/src/modules/orders/orders.service.ts","apps/api-fastify/src/modules/replay.ts","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/jobs.ts","apps/api-fastify/src/types.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/request-context.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/events/replay.service.ts","apps/api-nestjs/src/orders/orders.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/users/users.service.ts","apps/api-nestjs/test/conformance.differential.ts","apps/api-nestjs/test/http.acceptance.test.ts","conformance.matrix.json","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/realtime.ts","packages/contracts/src/request-context.test.ts","packages/contracts/src/request-context.ts","scripts/check-docs-truth.mjs"]}],"total_commits":0,"head_commit":{"id":"4a18e91045737eab943db36986074089b6c1923c","message":"docs(governance): 发布快照按 2026-09-10 晚 ls-remote 更新——两远端已到 f5b6f69(v0.5.0),v0.6.0 三提交未推送\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4a18e91045737eab943db36986074089b6c1923c","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-09T19:52:06-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":3668,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-09-10T10:36:03+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1789010023
|
1789010068
|
0
|
1789010022
|
1789010077
|
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
|
|
23639
|
docs(governance): refresh remote snapshot evidence
|
76
|
5
|
governance.yml
|
39
|
5
|
0
|
refs/heads/main
|
a772517da3040f54e5d2c91fa5e1c133cabd3c17
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f6bd2a9868bc86b739584c2b3833b3d98d3eaf07","after":"a772517da3040f54e5d2c91fa5e1c133cabd3c17","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/f6bd2a9868bc86b739584c2b3833b3d98d3eaf07...a772517da3040f54e5d2c91fa5e1c133cabd3c17","commits":[{"id":"a772517da3040f54e5d2c91fa5e1c133cabd3c17","message":"docs(governance): refresh remote snapshot evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/a772517da3040f54e5d2c91fa5e1c133cabd3c17","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-04T22:01:58-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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":"a772517da3040f54e5d2c91fa5e1c133cabd3c17","message":"docs(governance): refresh remote snapshot evidence\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/a772517da3040f54e5d2c91fa5e1c133cabd3c17","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-04T22:01:58-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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":82651,"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-05T12:58: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
|
2
|
64
|
1788584557
|
1788586687
|
0
|
1788584556
|
1788586719
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-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
|
|
23620
|
chore(reports): refresh clean static evidence
|
105
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
16292834a00b004e0380900be01b59b0fd948224
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f76fa1f553ada89174b9b59a934711373396a1f5","after":"16292834a00b004e0380900be01b59b0fd948224","compare_url":"https://gitea.g-hi.com/luoanwu/data-analytics/compare/f76fa1f553ada89174b9b59a934711373396a1f5...16292834a00b004e0380900be01b59b0fd948224","commits":[{"id":"16292834a00b004e0380900be01b59b0fd948224","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/16292834a00b004e0380900be01b59b0fd948224","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:35:03-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},{"id":"0ee4831afe93f3bcc525ffe0c2f1256c0023fc2a","message":"chore(reports): record clean framework sync evidence\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/0ee4831afe93f3bcc525ffe0c2f1256c0023fc2a","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:29:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"eda8c953d87a1d84ea714e0af2798034b1382c77","message":"chore(migration): record framework sync receipt\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/eda8c953d87a1d84ea714e0af2798034b1382c77","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:28:50-07:00","added":[],"removed":[],"modified":["docs/framework-migration.md","reports/framework-migration.latest.json"]},{"id":"e2bf36159c20eb4e79bab30fe54861e947c69443","message":"feat(framework): sync G15-B Redis occupancy guard and governance experience\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/e2bf36159c20eb4e79bab30fe54861e947c69443","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:28:50-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/framework-migration.md","docs/governance-experience.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-conformance-differential.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/acceptance-base-guard.mjs"]},{"id":"1851d21ef02c10730feeb5943824a76055c8ae54","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/1851d21ef02c10730feeb5943824a76055c8ae54","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T01:30:45-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"16292834a00b004e0380900be01b59b0fd948224","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/data-analytics/commit/16292834a00b004e0380900be01b59b0fd948224","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:35:03-07:00","added":[],"removed":[],"modified":["reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":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":710,"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:46+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788406000
|
1788406091
|
0
|
1788405499
|
1788407524
|
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
|
|
23451
|
fix(svc): complete worker control surface
|
64
|
5
|
governance.yml
|
9
|
5
|
0
|
refs/heads/main
|
759c0261a1cbec386f37f0c7f096f9f4efd57289
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f78049d487372e5538b1d202b65aa252031c8887","after":"759c0261a1cbec386f37f0c7f096f9f4efd57289","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/f78049d487372e5538b1d202b65aa252031c8887...759c0261a1cbec386f37f0c7f096f9f4efd57289","commits":[{"id":"759c0261a1cbec386f37f0c7f096f9f4efd57289","message":"fix(svc): complete worker control surface\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/759c0261a1cbec386f37f0c7f096f9f4efd57289","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:48:47-07:00","added":[],"removed":[],"modified":["README.md","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/SvcPanel.tsx","docs/domain/svc-cover-blueprint.md"]},{"id":"ee66fa978cf5dfc16f7001f805c48f2993cb8b44","message":"Add cover worker controls and document voice conversion product\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/ee66fa978cf5dfc16f7001f805c48f2993cb8b44","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:40:28-07:00","added":[],"removed":[],"modified":["README.md","apps/api-fastify/src/modules/svc/cover-jobs.service.ts","apps/api-fastify/src/routes/cover-jobs.ts","apps/api-nestjs/src/svc/cover-jobs.controller.ts","apps/api-nestjs/src/svc/cover-jobs.service.ts","apps/web/src/components/SvcPanel.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","docs/README.md","docs/domain/svc-cover-blueprint.md","packages/contracts/src/cover.ts"]}],"total_commits":0,"head_commit":{"id":"759c0261a1cbec386f37f0c7f096f9f4efd57289","message":"fix(svc): complete worker control surface\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/759c0261a1cbec386f37f0c7f096f9f4efd57289","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:48:47-07:00","added":[],"removed":[],"modified":["README.md","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/SvcPanel.tsx","docs/domain/svc-cover-blueprint.md"]},"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":false,"fork":false,"template":false,"mirror":false,"size":1005,"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-22T15:40:12+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784710408
|
1784710467
|
0
|
1784710407
|
1784710467
|
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
|