|
23452
|
feat(platforms): 增加真实 HTTP 数据连接验收
|
51
|
5
|
ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
8be066d1f0c5db776932ea77d5e0ee292bb367dd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c0618a939c6a7f40d91e9160a083313befe7c157","after":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c0618a939c6a7f40d91e9160a083313befe7c157...8be066d1f0c5db776932ea77d5e0ee292bb367dd","commits":[{"id":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","message":"feat(platforms): 增加真实 HTTP 数据连接验收\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8be066d1f0c5db776932ea77d5e0ee292bb367dd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T02:05:46-07:00","added":["docs/platform-http-integration.md"],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","server/.env.example","server/src/adapters/platform/http.ts","server/src/adapters/platform/index.ts","server/src/config/env.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/platform-adapter.unit.test.ts","server/test/r16-platforms.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md"]},{"id":"a3fd0cc2636423df29dc9dc197c68effebc98908","message":"merge: 合并前端全局唯一性门禁分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/a3fd0cc2636423df29dc9dc197c68effebc98908","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:06:14-07:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/scripts/test-static.mjs"]},{"id":"9167815cbbaae56a96573aeb4cce4af1e02d9ec6","message":"merge: 合并端到端 CI 工作流分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/9167815cbbaae56a96573aeb4cce4af1e02d9ec6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:06:09-07:00","added":[".github/workflows/e2e.yml"],"removed":[],"modified":[]},{"id":"ebee1953637ceabc41648708e598e9f88666935e","message":"merge: 合并嗨赞歌咏亭品类完整分支\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ebee1953637ceabc41648708e598e9f88666935e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-16T02:05:35-07:00","added":[".claude/skills/CONVENTIONS.md",".claude/skills/index.md",".claude/skills/ygg-fullstack-feature/SKILL.md",".claude/skills/ygg-governance-memory/SKILL.md",".claude/skills/ygg-honesty-boundary/SKILL.md",".claude/skills/ygg-seed-migration-guard/SKILL.md",".claude/skills/ygg-tenant-rbac-guard/SKILL.md",".claude/wf-premium-refresh.js","AGENTS.md","V1.1导航结构.md","docs/loop-engineering/README.md","docs/loop-engineering/acceptance-checklist.md","docs/loop-engineering/agent.md","docs/loop-engineering/all-projects-method.md","docs/loop-engineering/api-contract.md","docs/loop-engineering/implementation-plan.md","docs/reports/frontend-backend-integration-acceptance-2026-06-12.md","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/scripts/make-pdf.mjs","e2e/scripts/manual-screens.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-action-detail.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-ai-copy.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-cockpit.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-growth.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/assets/app-stores.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-01.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-02.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-03.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-04.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-05.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-06.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-07.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-08.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-09.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/layout/slide-10.layout.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/artifact-build-manifest.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/contact-sheet.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/output/yggdrasil-sales-deck.pptx","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/package.json","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-01.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-02.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-03.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-04.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-05.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-06.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-07.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-08.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-09.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/preview/slide-10.png","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/profile-plan.txt","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/deck.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-01.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-02.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-03.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-04.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-05.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-06.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-07.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-08.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-09.mjs","outputs/019e95c7-bd0e-7483-b4ca-5a864e388fa1/presentations/ygg-sales/slides/slide-10.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-actionDetail.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-ai.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-briefing.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-content.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-funnel.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-growth.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-orders.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-private.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-reviews.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-roi.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-sku.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/assets/c-tasks.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/claim-spine.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/contact-sheet-plan.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/data.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/design-system.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-01.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-02.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-03.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-04.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-05.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-06.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-07.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-08.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-09.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-10.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-11.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/final/slide-12.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/slide-01.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/layout/slide-06.layout.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/output/artifact-build-manifest.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/output/yggdrasil-sales-pro.pptx","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/package.json","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/contact-sheet.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-01.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-02.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-03.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-04.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-05.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-06.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-07.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-08.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-09.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-10.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-11.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/preview/slide-12.png","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/profile-plan.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/qa/comeback-scorecard.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/reference-audit.txt","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/deck.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-01.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-02.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-03.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-04.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-05.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-06.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-07.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-08.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-09.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-10.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-11.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/slides/slide-12.mjs","outputs/019ea224-d593-7ab1-bfea-04f90cf2f3bd/presentations/yggdrasil-sales-pro/source-notes.txt","outputs/juhi-skills/PROJECT_SKILL_ANALYSIS.md","outputs/juhi-skills/juhi-ygg-api-contract/SKILL.md","outputs/juhi-skills/juhi-ygg-api-contract/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-attribution-pilot/SKILL.md","outputs/juhi-skills/juhi-ygg-attribution-pilot/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-backend-module/SKILL.md","outputs/juhi-skills/juhi-ygg-backend-module/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-frontend-screen/SKILL.md","outputs/juhi-skills/juhi-ygg-frontend-screen/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-governance-memory/SKILL.md","outputs/juhi-skills/juhi-ygg-governance-memory/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-index/SKILL.md","outputs/juhi-skills/juhi-ygg-index/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-mainline-guard/SKILL.md","outputs/juhi-skills/juhi-ygg-mainline-guard/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-prisma-guard/SKILL.md","outputs/juhi-skills/juhi-ygg-prisma-guard/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-runtime-acceptance/SKILL.md","outputs/juhi-skills/juhi-ygg-runtime-acceptance/agents/openai.yaml","outputs/juhi-skills/juhi-ygg-truth-boundary/SKILL.md","outputs/juhi-skills/juhi-ygg-truth-boundary/agents/openai.yaml","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-01-today-briefing.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-02-ops-workbench.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-03-ai-command.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-04-growth-loop.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-05-action-attribution.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-06-reviews.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-07-content-studio.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-08-sku-pricing.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-09-subscription-value.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-10-chain-stores.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/desktop-11-data-center.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-01-home.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-02-ai-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-03-growth-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/mobile-04-fulfillment-module.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/test-http.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/assets/test-open.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/claim-spine.txt","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-01.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-02.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-03.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-04.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-05.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-06.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-07.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-08.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-09.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-10.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-11.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-12.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-13.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/layout/slide-14.layout.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/artifact-build-manifest.json","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/contact-sheet.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/minimal-test.pptx","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/output/yggdrasil-tob-merchant-sales-2026-06.pptx","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/minimal-test.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-01.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-02.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-03.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-04.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-05.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-06.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-07.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-08.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-09.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-10.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-11.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-12.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-13.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/preview/slide-14.png","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/profile-plan.txt","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/scripts/build-merchant-sales-deck.mjs","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/scripts/capture-screenshots.mjs","outputs/manual-20260606-ygg-merchant-sales/presentations/ygg-merchant-sales/source-notes.txt","outputs/manual-screens/c-actionDetail.png","outputs/manual-screens/c-ai.png","outputs/manual-screens/c-audit.png","outputs/manual-screens/c-automation.png","outputs/manual-screens/c-behavior.png","outputs/manual-screens/c-briefing.png","outputs/manual-screens/c-calendar.png","outputs/manual-screens/c-competitor.png","outputs/manual-screens/c-compliance.png","outputs/manual-screens/c-content.png","outputs/manual-screens/c-data.png","outputs/manual-screens/c-dataCenter.png","outputs/manual-screens/c-decor.png","outputs/manual-screens/c-fulfillment.png","outputs/manual-screens/c-funnel.png","outputs/manual-screens/c-growth.png","outputs/manual-screens/c-marketing.png","outputs/manual-screens/c-onboarding.png","outputs/manual-screens/c-orders.png","outputs/manual-screens/c-plans.png","outputs/manual-screens/c-private.png","outputs/manual-screens/c-reviews.png","outputs/manual-screens/c-roi.png","outputs/manual-screens/c-sku.png","outputs/manual-screens/c-stores.png","outputs/manual-screens/c-tasks.png","outputs/manual-screens/k-briefing.png","outputs/manual-screens/k-decor.png","outputs/manual-screens/k-facility.png","outputs/manual-screens/k-fission.png","outputs/manual-screens/k-home.png","outputs/manual-screens/k-member.png","outputs/manual-screens/k-sku.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-action-detail.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-ai-copy.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-cockpit.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-growth.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/assets/app-stores.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/claim-spine.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/contact-sheet-plan.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/design-system.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-01.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-02.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-03.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-04.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-05.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-06.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-07.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-08.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-09.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/layout/slide-10.layout.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/artifact-build-manifest.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/contact-sheet.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/output/yggdrasil-sales-rewrite.pptx","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/package.json","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-01.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-02.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-03.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-04.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-05.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-06.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-07.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-08.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-09.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/preview/slide-10.png","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/profile-plan.txt","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/deck.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-01.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-02.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-03.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-04.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-05.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-06.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-07.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-08.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-09.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/slides/slide-10.mjs","outputs/manual-ygg-sales-rewrite/presentations/ygg-sales-rewrite/source-notes.txt","outputs/manual-ygg-sales/presentations/ygg-sales/assets/cockpit-rgb.png","outputs/manual-ygg-sales/presentations/ygg-sales/assets/cockpit.png","outputs/manual-ygg-sales/presentations/ygg-sales/package.json","outputs/moodboards/yggdrasil-campaign-trust/brand-system/yggdrasil-brand-tokens.css","outputs/moodboards/yggdrasil-campaign-trust/brand-system/yggdrasil-brand-tokens.json","outputs/moodboards/yggdrasil-campaign-trust/brand-system/尤克特拉品牌系统提取稿.md","outputs/moodboards/yggdrasil-campaign-trust/run/app.js","outputs/moodboards/yggdrasil-campaign-trust/run/assets/export-icons/figma.svg","outputs/moodboards/yggdrasil-campaign-trust/run/assets/export-icons/finder.png","outputs/moodboards/yggdrasil-campaign-trust/run/codex-theme.css","outputs/moodboards/yggdrasil-campaign-trust/run/data/runtime-config.json","outputs/moodboards/yggdrasil-campaign-trust/run/data/stream-static.json","outputs/moodboards/yggdrasil-campaign-trust/run/data/stream.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/0f0e319bb822e52a9a5f6fb8dbb3a9c4.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/13b49db34415b421a99428f36778ac65.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/3946bbaa837631734bdd5f6f4763b9df.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/79ad9f72fd69f57db5518ab2df814080.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/83a2bf2bc49dd13c2fff7ebae69326c8.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/89e9341bd957d2c93dcd2a50db56d748.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/aa8bd14eeefd1527b11be80a4caf5766.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/ab816a218b6a39f01fde317ca3c757b8.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/codex-exec-image-results.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/d64effdd3a17068470cf60295a5cfb59.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/e3162d2ec9314428a25347350c209a72.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/edcea5c7563fe2e52d2888f575c55554.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/jobs.jsonl","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/preflight/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/preflight/preflight-result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/ai-top-three-cards/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/attribution-ledger/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/campaign-prep-materials/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/compliance-guardrail/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/growth-loop-still-life/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/merchant-morning-proof/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/multi-platform-orbit/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/owner-decision-moment/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/premium-local-commerce/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/product-hero-device/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/service-detail-hands/attempt-2/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/image.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/last-message.txt","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/result.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/.codex-exec/ce1f8ed8051c30b3/workers/storefront-threshold/attempt-1/state.json","outputs/moodboards/yggdrasil-campaign-trust/run/generated/ai-top-three-cards.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/attribution-ledger.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/campaign-prep-materials.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/compliance-guardrail.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/growth-loop-still-life.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/ai-top-three-cards.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/attribution-ledger.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/campaign-prep-materials.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/compliance-guardrail.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/growth-loop-still-life.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/merchant-morning-proof.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/owner-decision-moment.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/premium-local-commerce.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/product-hero-device.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/service-detail-hands.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/mcp-thumbs/storefront-threshold.jpg","outputs/moodboards/yggdrasil-campaign-trust/run/generated/merchant-morning-proof.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/owner-decision-moment.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/premium-local-commerce.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/product-hero-device.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/service-detail-hands.png","outputs/moodboards/yggdrasil-campaign-trust/run/generated/storefront-threshold.png","outputs/moodboards/yggdrasil-campaign-trust/run/index.html","outputs/moodboards/yggdrasil-campaign-trust/run/latest-action.json","outputs/moodboards/yggdrasil-campaign-trust/run/mood-board.html","outputs/moodboards/yggdrasil-campaign-trust/run/platform-icons.js","outputs/moodboards/yggdrasil-campaign-trust/run/run-state.json","outputs/moodboards/yggdrasil-campaign-trust/run/server.mjs","outputs/moodboards/yggdrasil-campaign-trust/run/styles.css","outputs/moodboards/yggdrasil-campaign-trust/run/theme.js","outputs/moodboards/yggdrasil-campaign-trust/spec.json","outputs/playwright/baseline-desktop.png","outputs/playwright/baseline-mobile.png","outputs/playwright/ui-refresh-desktop.png","outputs/playwright/ui-refresh-mobile.png","outputs/playwright/warm-orange-desktop.png","outputs/playwright/warm-orange-mobile.png","outputs/尤克特拉产品说明书.pdf","server/prisma/migrations/20260605061301_member_profile_segment_tags/migration.sql","server/prisma/migrations/20260605071116_behavior_event_telemetry/migration.sql","server/prisma/migrations/20260605075045_behavior_ops_dims/migration.sql","server/prisma/migrations/20260605081708_booking_source_platform/migration.sql","server/prisma/migrations/20260607021000_resources_state_runs/migration.sql","server/prisma/migrations/20260607093000_add_leads_crm/migration.sql","server/prisma/migrations/20260610015718_add_order_kind/migration.sql","server/src/adapters/platform/http.ts","server/src/lib/dates.ts","server/src/lib/fission.ts","server/src/lib/state-machine.ts","server/src/modules/automation-runner/service.ts","server/src/modules/behavior/routes.ts","server/src/modules/behavior/schema.ts","server/src/modules/behavior/service.ts","server/src/modules/leads/routes.ts","server/src/modules/leads/schema.ts","server/src/modules/leads/service.ts","server/src/modules/resources/routes.ts","server/src/modules/resources/schema.ts","server/src/modules/resources/service.ts","server/src/modules/resources/state.ts","server/src/modules/suggestions/schema.ts","server/src/modules/work-calendar/routes.ts","server/src/modules/work-calendar/service.ts","server/test/contract-schema.unit.test.ts","server/test/leads.unit.test.ts","server/test/platform-connection-truth.unit.test.ts","server/test/r23-work-calendar.test.ts","server/test/r24-behavior.test.ts","server/test/r25-member-resolve.test.ts","server/test/r26-content-rbac.test.ts","server/test/r27-restaurant-live-seed.test.ts","server/test/resource-state.unit.test.ts","业务工作流图谱.md","团购本地生活AI运营App/DESIGN-SPEC-v2.md","团购本地生活AI运营App/IOS.md","团购本地生活AI运营App/android/keystore.properties.example","团购本地生活AI运营App/ios/.gitignore","团购本地生活AI运营App/ios/App/App.xcodeproj/project.pbxproj","团购本地生活AI运营App/ios/App/App.xcworkspace/contents.xcworkspacedata","团购本地生活AI运营App/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","团购本地生活AI运营App/ios/App/App/AppDelegate.swift","团购本地生活AI运营App/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","团购本地生活AI运营App/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","团购本地生活AI运营App/ios/App/App/Base.lproj/LaunchScreen.storyboard","团购本地生活AI运营App/ios/App/App/Base.lproj/Main.storyboard","团购本地生活AI运营App/ios/App/App/Info.plist","团购本地生活AI运营App/ios/App/Podfile","团购本地生活AI运营App/ios/App/Podfile.lock","团购本地生活AI运营App/screens-behavior.jsx","团购本地生活AI运营App/screens-leads.jsx","团购本地生活AI运营App/scripts/android-deploy-check.mjs","团购本地生活AI运营App/scripts/generate-ios-assets.mjs","团购本地生活AI运营App/scripts/ios-deploy-check.mjs","团购本地生活AI运营App/设计令牌.md","尤克特拉产品说明书.md","尤克特拉项目销售手册.md","模块重复治理.md","真实链路与状态机审计矩阵.md","项目模块关系图谱.md"],"removed":["团购本地生活AI运营App/screens-home.jsx"],"modified":[".claude/launch.json",".github/workflows/ci.yml",".gitignore","e2e/tests/02-deep-flows.spec.ts","e2e/tests/03-role-matrix.spec.ts","e2e/utils/app.ts","server/.env.example","server/README.md","server/docker-compose.yml","server/docker-entrypoint.sh","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/adapters/platform/index.ts","server/src/adapters/platform/mock.ts","server/src/adapters/platform/types.ts","server/src/adapters/weather/index.ts","server/src/config/env.ts","server/src/lib/context.ts","server/src/lib/money.ts","server/src/lib/platform.ts","server/src/lib/prisma.ts","server/src/modules/actions/routes.ts","server/src/modules/actions/service.ts","server/src/modules/attribution/service.ts","server/src/modules/audit/routes.ts","server/src/modules/automation/routes.ts","server/src/modules/automation/service.ts","server/src/modules/booking/routes.ts","server/src/modules/booking/schema.ts","server/src/modules/booking/service.ts","server/src/modules/briefing/service.ts","server/src/modules/compliance/routes.ts","server/src/modules/content/routes.ts","server/src/modules/content/service.ts","server/src/modules/groupbuy/routes.ts","server/src/modules/groupbuy/schema.ts","server/src/modules/groupbuy/service.ts","server/src/modules/merchant/routes.ts","server/src/modules/merchant/service.ts","server/src/modules/metrics/routes.ts","server/src/modules/metrics/service.ts","server/src/modules/ops/routes.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/orders/routes.ts","server/src/modules/orders/service.ts","server/src/modules/periphery/routes.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/modules/pricing/service.ts","server/src/modules/referral/routes.ts","server/src/modules/referral/schema.ts","server/src/modules/referral/service.ts","server/src/modules/reviews/routes.ts","server/src/modules/reviews/service.ts","server/src/modules/skus/routes.ts","server/src/modules/skus/schema.ts","server/src/modules/store/service.ts","server/src/modules/suggestions/routes.ts","server/src/modules/suggestions/service.ts","server/src/modules/tasks/routes.ts","server/src/modules/tasks/schema.ts","server/src/modules/tasks/service.ts","server/src/modules/wallet/routes.ts","server/src/modules/wallet/schema.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/competitor-scan.test.ts","server/test/db-url.ts","server/test/global-setup.ts","server/test/helpers.ts","server/test/platform-adapter.unit.test.ts","server/test/r0-r1-auth.test.ts","server/test/r11-review-care.test.ts","server/test/r12-profile.test.ts","server/test/r15-pricing.test.ts","server/test/r16-platforms.test.ts","server/test/r19-referral.test.ts","server/test/r2-ops.test.ts","server/test/r20-ops.test.ts","server/test/r21-platform-ingest.test.ts","server/test/r3-growth.test.ts","server/test/r4-trust.test.ts","server/test/r8-boundary-concurrency.test.ts","server/test/setup-env.ts","团购本地生活AI运营App/ANDROID.md","团购本地生活AI运营App/README.md","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/android/.gitignore","团购本地生活AI运营App/android/app/build.gradle","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/capacitor.config.json","团购本地生活AI运营App/diagnosis.js","团购本地生活AI运营App/eslint.config.mjs","团购本地生活AI运营App/index.html","团购本地生活AI运营App/merchant-profiles.js","团购本地生活AI运营App/package-lock.json","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/screens-compliance.jsx","团购本地生活AI运营App/screens-data.jsx","团购本地生活AI运营App/screens-decor.jsx","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/screens-fulfillment.jsx","团购本地生活AI运营App/screens-growth.jsx","团购本地生活AI运营App/screens-live.jsx","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/screens-tasks.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/tweaks-panel.jsx","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","团购本地生活AI运营App/产品诊断与优化方案.html","尤克特拉业务功能分析.md","尤克特拉商业化与融资一页纸.md"]},{"id":"734393621449932f6b8d21e09bf5f220ec998cc5","message":"fix(booking): verify 去除 validFrom 闸 — 修 r22「未来预约当场核销」被误拦\n\n5f3b333 在 verify 加了 `validFrom \u003e now → 尚未生效`,而券 validFrom=startAt。\nr22/r16 setup 对「明天的预约」当场核销时被此闸拦死 → booking 停 BOOKED、completeBooking 返回 409。\nmain verify 无此闸;去除后与 main 对齐,仅保留 validUntil 过期拦截。无测试依赖「尚未生效」。\ntsc / test:unit 通过;r22 集成待 CI 验证(本机无 DB/Docker)。\n\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/734393621449932f6b8d21e09bf5f220ec998cc5","author":{"name":"luojuhai","email":"luojuhai@luojuhaideMacBook-Pro.local","username":""},"committer":{"name":"luojuhai","email":"luojuhai@luojuhaideMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-07-07T13:58:42+08:00","added":[],"removed":[],"modified":["server/src/modules/booking/service.ts"]}],"total_commits":0,"head_commit":{"id":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","message":"feat(platforms): 增加真实 HTTP 数据连接验收\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8be066d1f0c5db776932ea77d5e0ee292bb367dd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T02:05:46-07:00","added":["docs/platform-http-integration.md"],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","server/.env.example","server/src/adapters/platform/http.ts","server/src/adapters/platform/index.ts","server/src/config/env.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/platform-adapter.unit.test.ts","server/test/r16-platforms.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-static.mjs","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md"]},"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":6641,"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-14T15:54: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
|
8
|
1784712281
|
1784712493
|
0
|
1784712281
|
1784712493
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
17752
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
ci.yml
|
17673
|
5
|
0
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
0
|
1777221953
|
0
|
1777220520
|
1777221953
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
17753
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
e2e-tests.yml
|
17674
|
5
|
0
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
20
|
1777223834
|
1777223986
|
0
|
1777220520
|
1777225034
|
|
|
0
|
Edit
Delete
|
|
17755
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
test-pipeline.yml
|
17675
|
5
|
0
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
25
|
0
|
1777221956
|
0
|
1777220530
|
1777221961
|
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
|
|
17756
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
health-check.yml
|
17677
|
-2
|
304
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777223993
|
1777223994
|
0
|
1777220810
|
1777223994
|
|
|
0
|
Edit
Delete
|
|
17757
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
health-check.yml
|
17678
|
-2
|
304
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777223995
|
1777223995
|
0
|
1777221050
|
1777223995
|
|
|
0
|
Edit
Delete
|
|
17758
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
health-check.yml
|
17679
|
-2
|
304
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777223997
|
1777223997
|
0
|
1777221350
|
1777223997
|
|
|
0
|
Edit
Delete
|
|
17759
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
health-check.yml
|
17680
|
-2
|
304
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777223999
|
1777223999
|
0
|
1777221650
|
1777223999
|
|
|
0
|
Edit
Delete
|
|
17761
|
Tighten CI workflows: Node 20, pnpm 9, lint enforc Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps...
|
6
|
5
|
health-check.yml
|
17682
|
-2
|
304
|
refs/heads/main
|
a67a4f5bf6bede6341ed368fb3af3caec8dcd71c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c04c1f61a7ca64acf31ed914678656d87ed6e35f","after":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/c04c1f61a7ca64acf31ed914678656d87ed6e35f...a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","commits":[{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]}],"total_commits":0,"head_commit":{"id":"a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","message":"Tighten CI workflows: Node 20, pnpm 9, lint enforcement, audit gaps\n\nAddresses the gaps surfaced in the CI/CD audit. Each change is minimal\nand validated by yamllint locally:\n\n- ci.yml: drop `|| true` from `pnpm -C backend run lint` so lint\n failures actually block CI instead of silently passing.\n- deploy.yml: bump PNPM_VERSION 8→9 to match ci.yml. The mismatch\n could cause lockfile-format drift and surprise behavior depending\n on which runner picked up the job first.\n- e2e-tests.yml + performance.yml: bump NODE_VERSION 18→20 (Node 18\n is in maintenance / EOL prep), and bump PNPM_VERSION 8→9.\n- e2e-tests.yml: bump pnpm/action-setup@v2→@v4 (4 occurrences) to\n match other workflows.\n- migration-safety.yml: fix duplicate `env:` mapping at the\n \"Create PostgreSQL extensions\" step that yamllint flagged\n (key-duplicates). The first env block's DATABASE_URL was being\n silently dropped; merged both keys into a single env block.\n- e2e-tests.yml + migration-safety.yml: add a header comment\n explaining that the literal `test_password` is a runner-local\n ephemeral PostgreSQL service-container convention, not a real\n secret. Replacing it with secrets.* would break fork-PR CI.\n- test-pipeline.yml: add a new `fullstack-alignment-audit` job\n running the four audits that were previously missing from CI:\n audit:route-contract, audit:field-payload, audit:enum-consistency,\n audit:formrules-zod. Reports uploaded as artifact.\n\nAll six edited files pass yamllint.\n\nNote: `.gitea/workflows/` does not exist — Gitea side runs no CI.\nThat's a separate decision (mirror the GitHub workflows there, or\ndeliberately keep CI on GitHub only) and is out of scope here.\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/a67a4f5bf6bede6341ed368fb3af3caec8dcd71c","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:21:54-07:00","added":[],"removed":[],"modified":[".github/workflows/ci.yml",".github/workflows/deploy.yml",".github/workflows/e2e-tests.yml",".github/workflows/migration-safety.yml",".github/workflows/performance.yml",".github/workflows/test-pipeline.yml"]},"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":5218117,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-27T00:13:21+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
schedule
|
4
|
4
|
1777224039
|
1777224039
|
0
|
1777221950
|
1777224039
|
|
|
0
|
Edit
Delete
|
|
23471
|
修复局域网访问后端地址解析
|
51
|
5
|
ci.yml
|
9
|
8
|
0
|
refs/heads/main
|
092acb7eb779cf4d784a4aec60f834e797be7e46
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bef7116148fe61f8cba8207bd921d296cb01883d","after":"092acb7eb779cf4d784a4aec60f834e797be7e46","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/bef7116148fe61f8cba8207bd921d296cb01883d...092acb7eb779cf4d784a4aec60f834e797be7e46","commits":[{"id":"092acb7eb779cf4d784a4aec60f834e797be7e46","message":"修复局域网访问后端地址解析\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/092acb7eb779cf4d784a4aec60f834e797be7e46","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-31T15:45:54+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"092acb7eb779cf4d784a4aec60f834e797be7e46","message":"修复局域网访问后端地址解析\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/092acb7eb779cf4d784a4aec60f834e797be7e46","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-31T15:45:54+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app-config.js","团购本地生活AI运营App/index.html","团购本地生活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":87443,"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-31T15:27: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":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
|
1785483987
|
1785484110
|
0
|
1785483985
|
1785484110
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23876
|
merge: complete MS-1 publication preparation and b merge: complete MS-1 publication preparation and backup evidence...
|
116
|
5
|
platform.yml
|
11
|
5
|
0
|
refs/heads/main
|
0bceefc14d66a2f3544ff1036cbf467d80e2a9ec
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"be7334ad46324e54bebe2397365086896b6ad42b","after":"0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/be7334ad46324e54bebe2397365086896b6ad42b...0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","commits":[{"id":"0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","message":"merge: complete MS-1 publication preparation and backup evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","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:55:48-07:00","added":["docs/MS-1建仓与接入执行记录-2026-09-12.md","reports/ms1-consumer-preparation.2026-09-12/hr.patch","reports/ms1-consumer-preparation.2026-09-12/os.patch","reports/ms1-integration.2026-09-12.json","reports/ms1-validation.2026-09-12.json","stack/reports/pg-dump.2026-09-12.enterprise_platform_acceptance_stack20260911.json","stack/reports/pg-dump.2026-09-12.json","stack/reports/restore-drill.2026-09-12.json"],"removed":[],"modified":[".github/workflows/platform.yml","README.md","governance/test/verify-candidate.test.mjs","stack/README.md"]},{"id":"6b82290b2e815cba777a960f150ac9d8e78b013e","message":"docs(ms1): attach clean validation and current rollout boundary\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/6b82290b2e815cba777a960f150ac9d8e78b013e","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:55:18-07:00","added":["reports/ms1-validation.2026-09-12.json"],"removed":[],"modified":["README.md","docs/MS-1建仓与接入执行记录-2026-09-12.md","stack/README.md"]},{"id":"d7c68c327f13c89f1dbfbe336f64dc1153e416f4","message":"docs(ms1): record verified backups and pending consumer rollout\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/d7c68c327f13c89f1dbfbe336f64dc1153e416f4","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:54:13-07:00","added":["docs/MS-1建仓与接入执行记录-2026-09-12.md","reports/ms1-consumer-preparation.2026-09-12/hr.patch","reports/ms1-consumer-preparation.2026-09-12/os.patch","reports/ms1-integration.2026-09-12.json","stack/reports/pg-dump.2026-09-12.enterprise_platform_acceptance_stack20260911.json","stack/reports/pg-dump.2026-09-12.json","stack/reports/restore-drill.2026-09-12.json"],"removed":[],"modified":[]},{"id":"3df2e060ea2a6573d4f849095a7a9a47bd1ab1a5","message":"fix(ci): restore report paths when downloading candidate artifacts\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/3df2e060ea2a6573d4f849095a7a9a47bd1ab1a5","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:52:11-07:00","added":[],"removed":[],"modified":[".github/workflows/platform.yml","governance/test/verify-candidate.test.mjs"]}],"total_commits":0,"head_commit":{"id":"0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","message":"merge: complete MS-1 publication preparation and backup evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/0bceefc14d66a2f3544ff1036cbf467d80e2a9ec","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:55:48-07:00","added":["docs/MS-1建仓与接入执行记录-2026-09-12.md","reports/ms1-consumer-preparation.2026-09-12/hr.patch","reports/ms1-consumer-preparation.2026-09-12/os.patch","reports/ms1-integration.2026-09-12.json","reports/ms1-validation.2026-09-12.json","stack/reports/pg-dump.2026-09-12.enterprise_platform_acceptance_stack20260911.json","stack/reports/pg-dump.2026-09-12.json","stack/reports/restore-drill.2026-09-12.json"],"removed":[],"modified":[".github/workflows/platform.yml","README.md","governance/test/verify-candidate.test.mjs","stack/README.md"]},"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":2595,"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":1,"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-12T15:53: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
|
22
|
1789200172
|
1789200198
|
0
|
1789199753
|
1789200219
|
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
|
|
23776
|
Merge branch 'codex/industry-trend-sources' Merge branch 'codex/industry-trend-sources'...
|
57
|
5
|
governance.yml
|
146
|
5
|
0
|
refs/heads/main
|
d2af460b33165da901b1eca68a3ae1538b4e9696
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e","after":"d2af460b33165da901b1eca68a3ae1538b4e9696","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/bdd85f7670b0e415d30614a16d6c1b2ca5f16a5e...d2af460b33165da901b1eca68a3ae1538b4e9696","commits":[{"id":"d2af460b33165da901b1eca68a3ae1538b4e9696","message":"Merge branch 'codex/industry-trend-sources'\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d2af460b33165da901b1eca68a3ae1538b4e9696","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-09T03:25:32-07:00","added":["reports/industry-trend-sources-20260909/live-verification.json","reports/industry-trend-sources-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-industry-trend-sources.md","reports/industry-trend-sources-20260909/README.md"]},{"id":"c1fefcaa0a68d0b8d517602a2a937dc1066a0ee3","message":"docs: record verified live public trend integrations\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c1fefcaa0a68d0b8d517602a2a937dc1066a0ee3","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-09T03:25:15-07:00","added":["reports/industry-trend-sources-20260909/live-verification.json","reports/industry-trend-sources-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-industry-trend-sources.md","reports/industry-trend-sources-20260909/README.md"]}],"total_commits":0,"head_commit":{"id":"d2af460b33165da901b1eca68a3ae1538b4e9696","message":"Merge branch 'codex/industry-trend-sources'\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d2af460b33165da901b1eca68a3ae1538b4e9696","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-09T03:25:32-07:00","added":["reports/industry-trend-sources-20260909/live-verification.json","reports/industry-trend-sources-20260909/summary.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-industry-trend-sources.md","reports/industry-trend-sources-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":771807,"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-09T18:22:26+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
|
1788949670
|
1788949701
|
0
|
1788949669
|
1788949701
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23976
|
chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提 chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交...
|
80
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bda8349f3440331dc74da6a4a41880607201d63d","after":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/compare/bda8349f3440331dc74da6a4a41880607201d63d...50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","commits":[{"id":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 19 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于 2026-08-26 /\n09-10 的旧树,按证据纪律一律按 STALE 对待——也就是说当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (bda8349) 上逐条重跑全部静态门禁:12 通过 / 2 失败,14 份报告\nprovenance 全部 gitSha=bda8349 且 worktreeDirty=false。\n\n两条失败都是跨仓耦合,不是本仓静态问题:\n- check-evidence-current:os-product-runtime 的 upstream 指向基座 checkout 状态\n- check-os-product-compat:产品兼容性需要基座侧路径\n\n不跑需实例的门禁(runtime / UI / 容器 / 灾备),那些要 DATABASE_URL 与浏览器,\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","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-15T00:34:03-07:00","added":[],"removed":[],"modified":["reports/ci-evidence.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 19 份 reports/*.latest.json 无一绑定当前 HEAD,全部生成于 2026-08-26 /\n09-10 的旧树,按证据纪律一律按 STALE 对待——也就是说当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (bda8349) 上逐条重跑全部静态门禁:12 通过 / 2 失败,14 份报告\nprovenance 全部 gitSha=bda8349 且 worktreeDirty=false。\n\n两条失败都是跨仓耦合,不是本仓静态问题:\n- check-evidence-current:os-product-runtime 的 upstream 指向基座 checkout 状态\n- check-os-product-compat:产品兼容性需要基座侧路径\n\n不跑需实例的门禁(runtime / UI / 容器 / 灾备),那些要 DATABASE_URL 与浏览器,\n按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升到静态一级。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud/commit/50f4399dc7bb4ef9be6f97aa60a8e3148667c3e2","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-15T00:34:03-07:00","added":[],"removed":[],"modified":["reports/ci-evidence.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json"]},"repository":{"id":80,"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-device-cloud","full_name":"luoanwu/juhai-device-cloud","description":"巨嗨设备云:永久设备身份、激活调拨、可信换板与授权治理","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":900,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-device-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-device-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-device-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-device-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-25T23:52:33+08:00","updated_at":"2026-09-15T10:54:29+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
|
1789459046
|
1789459053
|
0
|
1789458924
|
1789459054
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
17741
|
Add secret-content-scan to Fast Gate pre-commit
|
6
|
5
|
ci.yml
|
17662
|
5
|
0
|
refs/heads/main
|
6f30ee7954e6142227f44fbcb36106e5ce6018eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","after":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd8162cf2c08d175a1cab0f69d42b648bb825c10...6f30ee7954e6142227f44fbcb36106e5ce6018eb","commits":[{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]},"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":5218097,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-26T23:56: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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
6
|
0
|
1777219989
|
0
|
1777219585
|
1777219990
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
17742
|
Add secret-content-scan to Fast Gate pre-commit
|
6
|
5
|
e2e-tests.yml
|
17663
|
5
|
0
|
refs/heads/main
|
6f30ee7954e6142227f44fbcb36106e5ce6018eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","after":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd8162cf2c08d175a1cab0f69d42b648bb825c10...6f30ee7954e6142227f44fbcb36106e5ce6018eb","commits":[{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]},"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":5218097,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-26T23:56: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":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
|
1777222660
|
1777223666
|
0
|
1777219586
|
1777224912
|
|
|
0
|
Edit
Delete
|
|
17744
|
Add secret-content-scan to Fast Gate pre-commit
|
6
|
5
|
test-pipeline.yml
|
17664
|
5
|
0
|
refs/heads/main
|
6f30ee7954e6142227f44fbcb36106e5ce6018eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","after":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd8162cf2c08d175a1cab0f69d42b648bb825c10...6f30ee7954e6142227f44fbcb36106e5ce6018eb","commits":[{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]},"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":5218097,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-26T23:56: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":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
3
|
24
|
0
|
1777219992
|
0
|
1777219595
|
1777219997
|
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
|
|
17745
|
Add secret-content-scan to Fast Gate pre-commit
|
6
|
5
|
health-check.yml
|
17666
|
-2
|
298
|
refs/heads/main
|
6f30ee7954e6142227f44fbcb36106e5ce6018eb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd8162cf2c08d175a1cab0f69d42b648bb825c10","after":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd8162cf2c08d175a1cab0f69d42b648bb825c10...6f30ee7954e6142227f44fbcb36106e5ce6018eb","commits":[{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]}],"total_commits":0,"head_commit":{"id":"6f30ee7954e6142227f44fbcb36106e5ce6018eb","message":"Add secret-content-scan to Fast Gate pre-commit\n\nLayer-2 defense complementing the env-leak guard added in bd8162cf2:\n\n- Scans staged diff lines for high-precision secret patterns:\n PEM private-key blocks, AWS access keys (AKIA…), GitHub PATs\n (ghp_/gho_/ghs_), JWT tokens (eyJ…eyJ…), and assignment lines\n matching `*PASSWORD|SECRET|TOKEN|API_KEY = \u003c32+ char base64\u003e`.\n- Excludes hook itself, docs/security/**, test fixtures, and the\n generate-secrets script to avoid self-tripping.\n- Per-line bypass via trailing `noqa: secret-scan` comment for\n legitimate fixtures or doc samples.\n\nVerified all positive cases trip and all negative cases pass through\nwhen run with system /usr/bin/grep (the shell sh hooks use). Failing\nthe gate prints up to 10 offending lines to give the developer\ncontext without dumping the whole secret.\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/6f30ee7954e6142227f44fbcb36106e5ce6018eb","author":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@luoguoguodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-04-26T09:06:13-07:00","added":[],"removed":[],"modified":[".husky/pre-commit"]},"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":5218097,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":14,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-04-26T23:56: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":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
|
1777223667
|
1777223668
|
0
|
1777219850
|
1777223668
|
|
|
0
|
Edit
Delete
|
|
23388
|
Merge gitea/main:纳入 Gitea 独有的模块结构文档
|
6
|
5
|
ci.yml
|
23304
|
5
|
0
|
refs/heads/main
|
7bff77f02f58e23bad0ebcbdbb262111707628e7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd6b20a8cdf6b23a3c68d2a8717c1bcfb60f3870","after":"7bff77f02f58e23bad0ebcbdbb262111707628e7","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/compare/bd6b20a8cdf6b23a3c68d2a8717c1bcfb60f3870...7bff77f02f58e23bad0ebcbdbb262111707628e7","commits":[{"id":"7bff77f02f58e23bad0ebcbdbb262111707628e7","message":"Merge gitea/main:纳入 Gitea 独有的模块结构文档\n\n保留 MODULE-STRUCTURE-DOCUMENT.md;price-definition.schema.ts 维持已删除状态\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7bff77f02f58e23bad0ebcbdbb262111707628e7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T21:52:58-07:00","added":["MODULE-STRUCTURE-DOCUMENT.md"],"removed":[],"modified":[]},{"id":"97176e2628c67dc29ac555af2ce185beadd3200d","message":"Merge branch 'claude/cranky-golick-18f198'\n\nview-module-audit 域报告归档(陈旧基线冲突保留 main 296 口径,仅纳入新增域文档)\n\n# Conflicts:\n#\tAGENTS.md\n#\tCLAUDE.md\n#\tGEMINI.md\n#\tREADME.md\n#\tdocs/governance/baseline-and-experience.md\n#\tdocs/reports/view-audit-domains/a3-ai-knowledge-2026-05-18.md\n#\tdocs/reports/view-audit-domains/a5-admin-center-2026-05-18.md\n#\tdocs/reports/view-audit-domains/a6-synergy-hr-2026-05-18.md\n#\tdocs/reports/view-audit-domains/a7-analytics-marketing-2026-05-18.md\n#\tdocs/reports/view-audit-domains/a8-system-center-2026-05-18.md\n#\tdocs/reports/view-audit-full-matrix-2026-05-18.md\n#\te2e/scripts/lib/view-audit.mjs\n#\treports/view-module-audit.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/97176e2628c67dc29ac555af2ce185beadd3200d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T21:47:10-07:00","added":[],"removed":[],"modified":[]},{"id":"6cb61512de04c7357e8c2448d8611030ba92c7ec","message":"Merge branch 'claude/festive-shamir-7bdc7a'\n\n删除孤儿 price-definition.schema.ts 对齐真源\n\n# Conflicts:\n#\tbackend/src/modules/price-books/price-definition.schema.ts\n#\treports/field-payload-audit.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/6cb61512de04c7357e8c2448d8611030ba92c7ec","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T21:40:04-07:00","added":[],"removed":["backend/src/modules/price-books/price-definition.schema.ts"],"modified":[]},{"id":"df206488d443e271800c1b991cc6cdd52fe95d49","message":"Merge branch 'claude/jolly-chatelet-4e240c'\n\nAI Agent/获客域过时 E2E 选择器对齐 canonical\n\n# Conflicts:\n#\te2e/tests/auth/channel-integrations-smoke.spec.ts\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/df206488d443e271800c1b991cc6cdd52fe95d49","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T21:39:22-07:00","added":[],"removed":[],"modified":["e2e/tests/auth/ai-agent-display-paths-smoke.spec.ts"]},{"id":"250915382e194d43be47a8ac9d95a56f48127a9b","message":"Merge branch 'governance/launch-hardening-2026-05-18'\n\n治理发布硬化 (PR #69, 138 commits)\n\n# Conflicts:\n#\te2e/.auth/admin.json\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/250915382e194d43be47a8ac9d95a56f48127a9b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T21:38:51-07:00","added":[".claude/.skill-improve-workspace/trigger-eval/eval-sets/architecture-review.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/brand-guidelines.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/frontend-design.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/grill.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/handoff.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/juhi-revops-expert.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/mcp-builder.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/prototype.json",".claude/.skill-improve-workspace/trigger-eval/eval-sets/webapp-testing.json",".claude/.skill-improve-workspace/trigger-eval/staleness.latest.json",".claude/.skill-improve-workspace/trigger-eval/staleness.latest.md",".claude/skills/juhi/architecture-review.md",".claude/skills/juhi/grill.md",".claude/skills/juhi/handoff.md",".claude/skills/juhi/prototype.md",".claude/skills/juhi/references/tenant-helpers-index.md",".claude/skills/juhi/scripts/sync-codex-wrappers.mjs",".claude/skills/juhi/scripts/validate-skill-system.mjs",".claude/workflows/bug-to-regression.md",".claude/workflows/frontend-route-runtime.md",".claude/workflows/module-g4-closure.md",".codex/config.toml",".codex/skills/juhi-brand-guidelines/agents/openai.yaml",".codex/skills/juhi-dev-api/SKILL.md",".codex/skills/juhi-dev-api/agents/openai.yaml",".codex/skills/juhi-dev-architecture-review/SKILL.md",".codex/skills/juhi-dev-architecture-review/agents/openai.yaml",".codex/skills/juhi-dev-audit/SKILL.md",".codex/skills/juhi-dev-audit/agents/openai.yaml",".codex/skills/juhi-dev-consumer/SKILL.md",".codex/skills/juhi-dev-consumer/agents/openai.yaml",".codex/skills/juhi-dev-create-skill/SKILL.md",".codex/skills/juhi-dev-create-skill/agents/openai.yaml",".codex/skills/juhi-dev-create-workflow/SKILL.md",".codex/skills/juhi-dev-create-workflow/agents/openai.yaml",".codex/skills/juhi-dev-debug/SKILL.md",".codex/skills/juhi-dev-debug/agents/openai.yaml",".codex/skills/juhi-dev-event/SKILL.md",".codex/skills/juhi-dev-event/agents/openai.yaml",".codex/skills/juhi-dev-fullstack/SKILL.md",".codex/skills/juhi-dev-fullstack/agents/openai.yaml",".codex/skills/juhi-dev-grill/SKILL.md",".codex/skills/juhi-dev-grill/agents/openai.yaml",".codex/skills/juhi-dev-handoff/SKILL.md",".codex/skills/juhi-dev-handoff/agents/openai.yaml",".codex/skills/juhi-dev-harness/SKILL.md",".codex/skills/juhi-dev-harness/agents/openai.yaml",".codex/skills/juhi-dev-index/SKILL.md",".codex/skills/juhi-dev-index/agents/openai.yaml",".codex/skills/juhi-dev-knowledge/SKILL.md",".codex/skills/juhi-dev-knowledge/agents/openai.yaml",".codex/skills/juhi-dev-migrate/SKILL.md",".codex/skills/juhi-dev-migrate/agents/openai.yaml",".codex/skills/juhi-dev-module/SKILL.md",".codex/skills/juhi-dev-module/agents/openai.yaml",".codex/skills/juhi-dev-prototype/SKILL.md",".codex/skills/juhi-dev-prototype/agents/openai.yaml",".codex/skills/juhi-dev-service/SKILL.md",".codex/skills/juhi-dev-service/agents/openai.yaml",".codex/skills/juhi-dev-state-machine/SKILL.md",".codex/skills/juhi-dev-state-machine/agents/openai.yaml",".codex/skills/juhi-dev-store/SKILL.md",".codex/skills/juhi-dev-store/agents/openai.yaml",".codex/skills/juhi-dev-tenant/SKILL.md",".codex/skills/juhi-dev-tenant/agents/openai.yaml",".codex/skills/juhi-dev-test/SKILL.md",".codex/skills/juhi-dev-test/agents/openai.yaml",".codex/skills/juhi-dev-typescript/SKILL.md",".codex/skills/juhi-dev-typescript/agents/openai.yaml",".codex/skills/juhi-dev-verify/SKILL.md",".codex/skills/juhi-dev-verify/agents/openai.yaml",".codex/skills/juhi-dev-view/SKILL.md",".codex/skills/juhi-dev-view/agents/openai.yaml",".codex/skills/juhi-frontend-design/agents/openai.yaml",".codex/skills/juhi-mcp-builder/agents/openai.yaml",".codex/skills/juhi-revops-expert/SKILL.md",".codex/skills/juhi-revops-expert/agents/openai.yaml",".codex/skills/juhi-tenant-isolation/SKILL.md",".codex/skills/juhi-tenant-isolation/agents/openai.yaml",".codex/skills/juhi-tenant-isolation/anti-patterns.md",".codex/skills/juhi-tenant-isolation/checklist.md",".codex/skills/juhi-tenant-isolation/examples.md",".codex/skills/juhi-tenant-isolation/handoff.md",".codex/skills/juhi-tenant-isolation/references/entrypoints.md",".codex/skills/juhi-tenant-isolation/triage-notes.example.md",".codex/skills/juhi-webapp-testing/agents/openai.yaml",".github/workflows/governance-mirror.yml","backend/prisma/migrations/20260523120000_tighten_suppliers_code_varchar/migration.sql","backend/prisma/migrations/20260526000000_harden_rls_nullif_tenant/migration.sql","backend/prisma/migrations/20260526010000_enable_rls_uncovered_tables/migration.sql","backend/prisma/migrations/20260526020000_add_hr_integration_sync_log_timestamps/migration.sql","backend/scripts/audit-state-machine-drift.ts","backend/src/modules/im/websocket/auth-token.ts","backend/src/modules/im/websocket/gateway.test.ts","backend/src/modules/leads/lead-import.service.test.ts","backend/src/modules/projects/services/project-tenant-helpers.ts","backend/src/modules/system-import/index.ts","backend/src/modules/system-import/system-import.controller.ts","backend/src/modules/system-import/system-import.docs.ts","backend/src/modules/system-import/system-import.routes.ts","backend/src/modules/system-import/system-import.schema.ts","backend/src/modules/system-import/system-import.service.test.ts","backend/src/modules/system-import/system-import.service.ts","backend/src/shared/utils/ai-agent-group-member-tenant-helpers.ts","backend/src/shared/utils/ai-agent-skill-binding-tenant-helpers.ts","backend/src/shared/utils/ai-agent-task-tenant-helpers.ts","backend/src/shared/utils/ai-skill-tenant-helpers.ts","backend/src/shared/utils/ai-workflow-tenant-helpers.ts","backend/src/shared/utils/autopilot-recovery-tenant-helpers.ts","backend/src/shared/utils/bank-transaction-tenant-helpers.ts","backend/src/shared/utils/community-tenant-helpers.ts","backend/src/shared/utils/community-user-points-tenant-helpers.ts","backend/src/shared/utils/customer-tenant-helpers.ts","backend/src/shared/utils/gl-tenant-helpers.ts","backend/src/shared/utils/groupbuy-redemption-tenant-helpers.ts","backend/src/shared/utils/im-conversation-tenant-helpers.ts","backend/src/shared/utils/knowledge-atom-tenant-helpers.ts","backend/src/shared/utils/knowledge-candidate-tenant-helpers.ts","backend/src/shared/utils/payment-plan-tenant-helpers.ts","backend/src/shared/utils/phase3-tenant-helpers.ts","backend/src/shared/utils/phase4-tenant-helpers.ts","backend/src/shared/utils/phase5-tenant-helpers.ts","backend/src/shared/utils/phase5b-tenant-helpers.ts","backend/src/shared/utils/phase5c-tenant-helpers.ts","backend/src/shared/utils/service-ticket-tenant-helpers.ts","backend/src/shared/utils/social-ad-tenant-helpers.ts","backend/src/shared/utils/social-tenant-helpers.ts","backend/tests/api/lead-scoring.test.ts","backend/tests/api/system-import.test.ts","docs/governance/data-reporting-analytics-chart-scope-2026-05-24.md","docs/governance/dual-tenant-customer-init-template-2026-05-18.md","docs/governance/dual-tenant-module-enablement-matrix-2026-05-18.csv","docs/governance/dual-tenant-risk-ledger-2026-05-18.md","docs/governance/im-module-governance-acceptance-card-2026-05-24.md","docs/governance/im-module-governance-battle-card-2026-05-24.md","docs/governance/juhi-skill-usage-improvement-plan-2026-05-23.md","docs/governance/pre-commit-staging-anomaly-2026-05-20.md","docs/governance/route-body-validation-gap-2026-05-23.md","docs/handoffs/skills-gap-fill-2026-05-23.md","docs/handoffs/tob-api-event-assertions-2026-05-23.md","docs/operations/dual-customer-rollout-runbook-2026-05-18.md","docs/operations/dual-customer-rollout/customer-production-signoff-register-2026-05-18.csv","docs/operations/dual-customer-rollout/customer-production-signoff-template-2026-05-18.md","docs/operations/dual-customer-rollout/dev-launch-data-summary-2026-05-18.md","docs/operations/dual-customer-rollout/dev-module-enable-unlocked-2026-05-18.csv","docs/operations/dual-customer-rollout/dev-signoff-register-2026-05-18.md","docs/operations/dual-customer-rollout/internal-uat-release-candidate-approval-2026-05-18.md","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D0-001__company_tenant_basic_info.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D0-002__org_department_hierarchy.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D0-003__position_job_titles.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D0-004__user_account_list.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D0-005__role_permission_matrix.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D0-006__approval_hierarchy.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D0-007__customer_security_data_contacts.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D1-001__customers_segments.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D1-002__contacts.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D1-003__channel_partners_agents.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D1-004__products_skus_prices.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D1-005__suppliers_service_providers.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D1-006__sales_org_regions.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D1-007__customer_tags_segments.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-001__leads.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-002__opportunities.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-003__quotes.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-004__contracts.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-005__orders.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-006__payment_plans.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-007__service_tickets.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D2-008__renewals.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-001__chart_of_accounts.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-002__accounting_periods.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-003__invoices.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-004__ar_ledger.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-005__payments_bank_flows.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-006__reconciliations.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-007__commission_records.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D3-008__settlements.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D4-001__stores_master_data.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D4-002__groupbuy_campaigns_platforms.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D4-003__groupbuy_orders.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D4-004__redemptions.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D4-005__community_members.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D4-006__alliance_coupons_usages.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D4-007__store_groupbuy_alliance_settlements.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D5-001__marketing_campaigns.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D5-002__ad_spend.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D5-003__landing_pages_forms.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D5-004__utm_touchpoints.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D5-005__content_library_social_accounts.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D5-006__livestream_video_sms_email_templates.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D6-001__knowledge_sop_documents.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D6-002__workflow_definitions.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D6-003__approval_templates.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D6-004__ai_context_allowlist.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D6-005__hr_training_materials.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D6-006__workflow_role_assignments.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D7-001__contract_attachments.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D7-002__invoice_payment_attachments.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D7-003__product_store_images.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D7-004__knowledge_attachments.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D7-005__marketing_assets.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D8-001__source_file_register.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D8-002__field_mapping_workbook.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D8-003__cleaning_rules.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D8-004__import_run_logs.csv","docs/operations/dual-customer-rollout/material-tables-2026-05-18/D8-005__rollback_reconciliation_reports.csv","docs/operations/dual-customer-rollout/p0-charter-2026-05-18.md","docs/operations/dual-customer-rollout/p0-customer-input-readme.md","docs/operations/dual-customer-rollout/p0-customer-input-template.yaml","docs/operations/dual-customer-rollout/p0-data-migration-inventory-2026-05-18.md","docs/operations/dual-customer-rollout/p0-module-enable-matrix-2026-05-18.md","docs/operations/dual-customer-rollout/p0-risk-register-2026-05-18.md","docs/operations/dual-customer-rollout/p1-production-foundation-start-2026-05-18.md","docs/operations/dual-customer-rollout/p2-tob-lead-to-cash-start-2026-05-18.md","docs/operations/dual-customer-rollout/p3-finance-control-tower-start-2026-05-18.md","docs/operations/dual-customer-rollout/p4-store-operations-start-2026-05-18.md","docs/operations/dual-customer-rollout/p5-growth-content-acquisition-start-2026-05-18.md","docs/operations/dual-customer-rollout/p6-ai-knowledge-process-hr-start-2026-05-18.md","docs/operations/dual-customer-rollout/preproduction-uat-signoff-package-2026-05-18.md","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F00_customer_signer_roster.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F01_tenant_bootstrap_request.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F02_role_user_account_roster.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F03_source_file_register.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F04_field_mapping_workbook.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F05_data_cleaning_rules.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F06_import_validation_checklist.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F07_uat_import_acceptance.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F08_production_import_approval.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F09_rls_tenant_isolation_evidence.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F10_backup_restore_evidence.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F11_cross_tenant_access_matrix.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F12_business_flow_sample_register.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F13_attachment_permission_register.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/F14_final_production_signoff_evidence.csv","docs/operations/dual-customer-rollout/production-data-forms-2026-05-18/README.md","docs/operations/dual-customer-rollout/production-data-material-59-table-ddl-2026-05-18.sql","docs/operations/dual-customer-rollout/production-data-material-59-table-index-2026-05-18.csv","docs/operations/dual-customer-rollout/production-data-material-import-table-2026-05-18.csv","docs/operations/dual-customer-rollout/production-data-material-import-table-ddl-2026-05-18.sql","docs/operations/dual-customer-rollout/production-data-material-list-2026-05-18.md","docs/operations/dual-customer-rollout/production-data-material-tracker-2026-05-18.csv","docs/operations/dual-customer-rollout/production-signoff-todo-checklist-2026-05-18.md","docs/operations/dual-customer-rollout/samples/p0-customer-input.sample-2026-05-22.yaml","docs/reports/view-audit-domains/a1-acquisition-center-2026-05-19.md","docs/reports/view-audit-domains/a1-acquisition-center-2026-05-21.md","docs/reports/view-audit-domains/a2-finance-center-2026-05-19.md","docs/reports/view-audit-domains/a2-finance-center-2026-05-21.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-05-19.md","docs/reports/view-audit-domains/a3-ai-knowledge-2026-05-21.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-05-19.md","docs/reports/view-audit-domains/a4-store-groupbuy-alliance-2026-05-21.md","docs/reports/view-audit-domains/a5-admin-center-2026-05-19.md","docs/reports/view-audit-domains/a5-admin-center-2026-05-21.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-05-19.md","docs/reports/view-audit-domains/a6-synergy-hr-2026-05-21.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-05-19.md","docs/reports/view-audit-domains/a7-analytics-marketing-2026-05-21.md","docs/reports/view-audit-domains/a8-system-center-2026-05-19.md","docs/reports/view-audit-domains/a8-system-center-2026-05-21.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-05-19.md","docs/reports/view-audit-domains/a9-service-sales-fulfillment-2026-05-21.md","docs/reports/view-audit-full-matrix-2026-05-19.md","docs/reports/view-audit-full-matrix-2026-05-21.md","e2e/tests/auth/channel-state-guard-smoke.spec.ts","e2e/tests/auth/profile-smoke.spec.ts","e2e/tests/auth/system-import-smoke.spec.ts","frontend/src/api/modules/__tests__/im-websocket.test.ts","frontend/src/api/modules/system-import.ts","frontend/src/views/profile/__tests__/profile-g4.smoke.test.ts","frontend/src/views/system-import/Index.vue","frontend/src/views/system-import/__tests__/system-import-g4.smoke.test.ts","reports/baseline-reconcile.latest.json","reports/chart-imports-audit.latest.json","reports/chart-imports-audit.latest.md","reports/customer-signoff-status.latest.json","reports/dual-customer-rollout-dev-launch-data-2026-05-18.json","reports/dual-customer-rollout-dev-signoff-2026-05-18.json","reports/dual-customer-rollout-dev-unblock-status-2026-05-18.json","reports/dual-customer-rollout-p0-status-2026-05-18.json","reports/dual-customer-rollout-phase-status-2026-05-18.json","reports/dual-customer-rollout-production-data-forms-2026-05-18.json","reports/dual-customer-rollout-production-data-material-import-table-2026-05-18.json","reports/dual-customer-rollout-production-data-materials-2026-05-18.json","reports/dual-customer-rollout-production-signoff-template-2026-05-18.json","reports/dual-customer-rollout-uat-release-package-2026-05-18.json","reports/dual-customer-rollout-workset-2026-05-18.json","reports/e2e-last-run.latest.json","reports/governance-exemptions.json","reports/harness-orchestration.latest.json","reports/info-decision-sla-registry.json","reports/info-decision-sla.latest.json","reports/money-decimal-purity-audit.latest.json","reports/nested-transaction-audit.latest.json","reports/p0-customer-input-status.latest.json","reports/page-click-interactions-audit.latest.json","reports/prisma-zod-contract-audit.2026-05-20.json","reports/prisma-zod-contract-audit.2026-05-20.md","reports/prisma-zod-contract-audit.2026-05-23.json","reports/prisma-zod-contract-audit.2026-05-23.md","reports/prisma-zod-contract-audit.2026-05-24.json","reports/prisma-zod-contract-audit.2026-05-24.md","reports/real-ui-audit.latest.json","reports/route-body-validation-audit.latest.json","reports/state-machine-drift-audit.2026-05-23.json","reports/state-machine-drift-audit.latest.json","reports/tenant-update-where-audit.latest.json","reports/test-assertion-density-audit.latest.json","scripts/audit-chart-imports.ts","scripts/audit-info-decision-sla.ts","scripts/audit-money-decimal-purity.ts","scripts/audit-nested-transaction.ts","scripts/audit-p0-customer-input.ts","scripts/audit-page-click-interactions.ts","scripts/audit-route-body-validation.ts","scripts/audit-tenant-update-where.ts","scripts/audit-test-assertion-density.ts","scripts/generate-dual-customer-rollout-dev-data.mjs","scripts/generate-production-data-collection-forms.mjs","scripts/generate-production-data-material-import-table.mjs","scripts/harness/baseline-reconcile.ts","scripts/harness/customer-signoff-status.ts","scripts/harness/drift.ts","scripts/harness/e2e-last-run-status.ts","scripts/harness/gate-integrity-check.ts","scripts/harness/gate.ts","scripts/harness/governance-gate.ts","scripts/harness/ratchet.ts","scripts/harness/real-ui-audit-status.ts"],"removed":["e2e/.auth/admin.json","e2e/.auth/backups/admin.finance-20260514T201242.json","e2e/.auth/backups/admin.finance-active-20260514T201242.json","e2e/playwright-report/index.html","e2e/test-results/.last-run.json"],"modified":[".claude/.skill-improve-workspace/trigger-eval/harness.mjs",".claude/.skill-improve-workspace/trigger-eval/run-all.mjs",".claude/.skill-improve-workspace/trigger-eval/summary.md",".claude/commands/juhi/tenant.md",".claude/skills/juhi/create-skill.md",".claude/skills/juhi/debug.md",".claude/skills/juhi/index.md",".claude/skills/juhi/references/project-commands.md",".claude/skills/juhi/scripts/list-skills.mjs",".claude/skills/juhi/tenant.md",".claude/skills/juhi/test.md",".claude/workflows/README.md",".codex/skills/README.md",".codex/skills/juhi-api-acceptance-runtime/SKILL.md",".codex/skills/juhi-backend-audit-fix/SKILL.md",".codex/skills/juhi-backend-audit-fix/checklist.md",".codex/skills/juhi-backend-audit-fix/examples.md",".codex/skills/juhi-backend-audit-fix/handoff.md",".codex/skills/juhi-backend-audit-fix/references/entrypoints.md",".codex/skills/juhi-brand-guidelines/SKILL.md",".codex/skills/juhi-development-toolkit/SKILL.md",".codex/skills/juhi-frontend-design/SKILL.md",".codex/skills/juhi-governance-commander/SKILL.md",".codex/skills/juhi-governance-index/SKILL.md",".codex/skills/juhi-governance-index/checklist.example.md",".codex/skills/juhi-governance-index/checklist.md",".codex/skills/juhi-governance-index/references/entrypoints.md",".codex/skills/juhi-governance-index/triage-notes.example.md",".codex/skills/juhi-mcp-builder/SKILL.md",".codex/skills/juhi-module-g4-governance/SKILL.md",".codex/skills/juhi-module-g4-governance/references/entrypoints.md",".codex/skills/juhi-playwright-runtime-triage/SKILL.md",".codex/skills/juhi-webapp-testing/SKILL.md",".gitea/workflows/ci.yml",".gitignore",".husky/pre-commit",".local-tools/bin/docker","AGENTS.md","CLAUDE.md","GEMINI.md","MEMORY.md","README.md","backend/package.json","backend/prisma/schema.prisma","backend/prisma/schema/learning.prisma","backend/prisma/schema/supply-chain.prisma","backend/scripts/audit-docs-single-source.ts","backend/scripts/audit-n1-queries.ts","backend/scripts/audit-prisma-zod-contract.ts","backend/scripts/audit-tenant-security.ts","backend/scripts/generate-rls-policies.ts","backend/src/config/database.ts","backend/src/config/kafka.ts","backend/src/config/load-env.ts","backend/src/config/rls-extension.ts","backend/src/consumers/__tests__/im-es-indexer.consumer.test.ts","backend/src/consumers/ai-agent-im.consumer.ts","backend/src/consumers/customer-success.consumer.ts","backend/src/consumers/hr.consumer.ts","backend/src/consumers/im-es-indexer.consumer.ts","backend/src/consumers/index.ts","backend/src/consumers/knowledge-center.consumer.ts","backend/src/consumers/marketing.consumer.ts","backend/src/consumers/project.consumer.ts","backend/src/consumers/service.consumer.ts","backend/src/consumers/warehouse.consumer.ts","backend/src/main.ts","backend/src/modules/ad-accounts/ad-account.service.test.ts","backend/src/modules/ad-accounts/ad-account.service.ts","backend/src/modules/ad-audiences/ad-audience.service.test.ts","backend/src/modules/ad-biddings/ad-bidding.service.test.ts","backend/src/modules/ad-campaigns/ad-campaigns.service.test.ts","backend/src/modules/ad-creatives/ad-creative.service.test.ts","backend/src/modules/ad-placement/ad-creative.service.test.ts","backend/src/modules/ad-placement/ad-creative.service.ts","backend/src/modules/ad-placement/placement.service.ts","backend/src/modules/ad-reports/ad-report.service.ts","backend/src/modules/admin-settings/admin-settings.routes.ts","backend/src/modules/agent-sessions/sandbox/credential-proxy.ts","backend/src/modules/aging-analysis/aging-analysis.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.test.ts","backend/src/modules/ai-agent-skills/ai-agent-skills.service.ts","backend/src/modules/ai-agents/ai-autopilot.service.ts","backend/src/modules/ai-agents/services/ai-agent-im-message-processor.service.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.test.ts","backend/src/modules/ai-agents/services/autopilot-scheduler.service.ts","backend/src/modules/ai-agents/services/lead-collector.service.ts","backend/src/modules/ai-agents/services/model-state-manager.service.ts","backend/src/modules/ai-agents/services/multi-agent-collaboration.service.ts","backend/src/modules/ai-agents/services/task-heartbeat.service.ts","backend/src/modules/ai-assist/context-providers/redact.ts","backend/src/modules/ai-assist/execution-ticket.ts","backend/src/modules/ai-assist/skills/compliance-coach-registry.ts","backend/src/modules/ai-assist/skills/leadership-coach-registry.ts","backend/src/modules/ai-assist/skills/marketing-coach-registry.ts","backend/src/modules/ai-assist/skills/onboarding-coach-registry.ts","backend/src/modules/ai-assist/skills/registry.ts","backend/src/modules/ai-assist/skills/sales-coach-registry.ts","backend/src/modules/ai-assist/skills/service-coach-registry.ts","backend/src/modules/ai-copilot/ai-copilot.service.test.ts","backend/src/modules/alliance-agreements/alliance-agreement.service.test.ts","backend/src/modules/alliance-agreements/alliance-agreement.service.ts","backend/src/modules/alliance-campaigns/alliance-campaign.service.test.ts","backend/src/modules/alliance-coupons/alliance-coupon.service.test.ts","backend/src/modules/alliance-merchants/alliance-merchant.service.test.ts","backend/src/modules/alliance-packages/alliance-package.service.test.ts","backend/src/modules/alliance-packages/alliance-package.service.ts","backend/src/modules/alliance-partners/alliance-partner.service.test.ts","backend/src/modules/alliance-partners/alliance-partner.service.ts","backend/src/modules/alliance-products/alliance-product.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.test.ts","backend/src/modules/alliance-promotions/alliance-promotion.service.ts","backend/src/modules/alliance-referrals/alliance-referral.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.test.ts","backend/src/modules/alliance-settlements/alliance-settlement.service.ts","backend/src/modules/analytics/analytics.service.ts","backend/src/modules/approvals/approval.service.test.ts","backend/src/modules/assembly/assembly.routes.ts","backend/src/modules/assembly/assembly.schema.ts","backend/src/modules/assembly/assembly.service.test.ts","backend/src/modules/assets/asset.service.ts","backend/src/modules/attribution/attribution-touchpoint.service.ts","backend/src/modules/auth/auth.service.test.ts","backend/src/modules/auth/auth.service.ts","backend/src/modules/biz-sequences/biz-sequence.service.test.ts","backend/src/modules/bom/bom.service.test.ts","backend/src/modules/bom/bom.service.ts","backend/src/modules/campaign-drafts/campaign-draft.service.test.ts","backend/src/modules/campaign-library/campaign-library.service.test.ts","backend/src/modules/campaigns/campaign.service.ts","backend/src/modules/cash-flow/cash-flow-forecast.service.ts","backend/src/modules/cash-flow/cash-flow.routes.ts","backend/src/modules/cash-flow/cash-flow.schema.ts","backend/src/modules/certifications/certifications.service.test.ts","backend/src/modules/channel-analytics/channel-analytics.routes.ts","backend/src/modules/channel-analytics/channel-analytics.schema.ts","backend/src/modules/channels/channel.controller.ts","backend/src/modules/channels/channel.service.test.ts","backend/src/modules/channels/channel.service.ts","backend/src/modules/chart-of-accounts/chart-of-accounts.service.ts","backend/src/modules/community-activities/community-activity.service.test.ts","backend/src/modules/community-bots/community-bot.service.ts","backend/src/modules/community-fission/community-fission.service.test.ts","backend/src/modules/community-groups/community-group.service.test.ts","backend/src/modules/community-levels/community-level.service.ts","backend/src/modules/community-materials/community-material.service.test.ts","backend/src/modules/community-members/community-member.service.test.ts","backend/src/modules/community-messages/community-message.service.test.ts","backend/src/modules/community-points/community-point.service.test.ts","backend/src/modules/community-points/community-point.service.ts","backend/src/modules/community-tasks/community-task.service.test.ts","backend/src/modules/community-tasks/community-task.service.ts","backend/src/modules/content-copyright/content-copyright.service.test.ts","backend/src/modules/content-creation/content-creation.service.test.ts","backend/src/modules/content-distribution/content-distribution.service.test.ts","backend/src/modules/content-library/content-library.service.test.ts","backend/src/modules/content-review/content-review.service.test.ts","backend/src/modules/content-templates/content-template.service.test.ts","backend/src/modules/contracts/contract.service.test.ts","backend/src/modules/contracts/contract.service.ts","backend/src/modules/contracts/payment-plan.service.ts","backend/src/modules/cost-allocation/cost-allocation.routes.ts","backend/src/modules/cost-allocation/cost-allocation.schema.ts","backend/src/modules/course-marketplace/course-marketplace.service.test.ts","backend/src/modules/course-marketplace/course-marketplace.service.ts","backend/src/modules/cpq/cpq.service.test.ts","backend/src/modules/cpq/cpq.service.ts","backend/src/modules/customer-balance/customer-balance.service.ts","backend/src/modules/customer-health/customer-health.service.test.ts","backend/src/modules/customer-health/customer-health.service.ts","backend/src/modules/customer-journey/customer-journey.service.test.ts","backend/src/modules/customer-ltv/customer-ltv.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.test.ts","backend/src/modules/customer-marketing/customer-marketing.service.ts","backend/src/modules/customers/customer-health.service.ts","backend/src/modules/customers/customer-hierarchy.service.ts","backend/src/modules/customers/customer-service.service.ts","backend/src/modules/customers/customer.service.test.ts","backend/src/modules/devices/asset-activation.service.ts","backend/src/modules/diagnosis/diagnosis.service.ts","backend/src/modules/dimension-transform/dimension-transform.service.test.ts","backend/src/modules/dimension-transform/dimension-transform.service.ts","backend/src/modules/disbursements/disbursement-record.service.test.ts","backend/src/modules/disbursements/expense-claim.service.test.ts","backend/src/modules/email-marketing/email-campaign.service.ts","backend/src/modules/email-templates/email-template.service.test.ts","backend/src/modules/expense/expense.service.test.ts","backend/src/modules/faults/fault.contract.routes.ts","backend/src/modules/faults/fault.routes.ts","backend/src/modules/faults/fault.schema.ts","backend/src/modules/faults/fault.service.test.ts","backend/src/modules/faults/fault.service.ts","backend/src/modules/finance/event-payment-integration.service.ts","backend/src/modules/finance/finance-automation.service.ts","backend/src/modules/finance/finance-cash-analysis.service.ts","backend/src/modules/finance/finance-commissions.service.ts","backend/src/modules/finance/finance-costing.service.ts","backend/src/modules/finance/finance-credits.service.test.ts","backend/src/modules/finance/finance-credits.service.ts","backend/src/modules/finance/finance-periods.service.test.ts","backend/src/modules/finance/finance-refunds.service.test.ts","backend/src/modules/finance/finance-reporting.service.ts","backend/src/modules/finance/treasury.service.ts","backend/src/modules/financial-reports/financial-reports.routes.ts","backend/src/modules/financial-reports/financial-reports.schema.ts","backend/src/modules/financial-reports/financial-reports.service.ts","backend/src/modules/geo-fences/geo-fences.service.test.ts","backend/src/modules/geo-fences/geo-fences.service.ts","backend/src/modules/geo-fences/index.ts","backend/src/modules/geo-keywords/geo-keyword.service.test.ts","backend/src/modules/geo-keywords/geo-keyword.service.ts","backend/src/modules/geo-keywords/index.ts","backend/src/modules/geo-reviews/geo-review.service.test.ts","backend/src/modules/geo-reviews/geo-review.service.ts","backend/src/modules/groupbuy-campaigns/groupbuy-campaign.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.test.ts","backend/src/modules/groupbuy-commissions/groupbuy-commission.service.ts","backend/src/modules/groupbuy-influencers/groupbuy-influencer.service.test.ts","backend/src/modules/groupbuy-inventory/groupbuy-inventory.service.ts","backend/src/modules/groupbuy-orders/groupbuy-order.service.test.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.controller.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.test.ts","backend/src/modules/groupbuy-participants/groupbuy-participant.service.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.test.ts","backend/src/modules/groupbuy-platforms/groupbuy-platform.service.ts","backend/src/modules/groupbuy-products/groupbuy-product.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.test.ts","backend/src/modules/groupbuy-promotions/groupbuy-promotion.service.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.test.ts","backend/src/modules/groupbuy-redemptions/groupbuy-redemption.service.ts","backend/src/modules/groupbuy-reviews/groupbuy-review.service.ts","backend/src/modules/groupbuy-settlements/groupbuy-settlement.service.test.ts","backend/src/modules/hr/attendance/holidays/holiday.service.test.ts","backend/src/modules/hr/attendance/leaves/leave.service.test.ts","backend/src/modules/hr/attendance/leaves/leave.service.ts","backend/src/modules/hr/attendance/overtime/overtime.service.test.ts","backend/src/modules/hr/attendance/records/record.service.test.ts","backend/src/modules/hr/attendance/schedules/schedule.service.test.ts","backend/src/modules/hr/attendance/shifts/shift.service.test.ts","backend/src/modules/hr/benefits/claims/claim.service.test.ts","backend/src/modules/hr/benefits/enrollments/enrollment.service.test.ts","backend/src/modules/hr/training/competency/competency.service.test.ts","backend/src/modules/hr/training/courses/course.service.test.ts","backend/src/modules/hr/training/exams/exam.service.test.ts","backend/src/modules/hr/training/plans/plan.service.test.ts","backend/src/modules/im/channels/wechat/wechat.handler.ts","backend/src/modules/im/channels/wechat/wechat.sync.ts","backend/src/modules/im/im-binding.service.ts","backend/src/modules/im/im-enhanced.service.ts","backend/src/modules/im/im-workflow-sync.service.ts","backend/src/modules/im/im.service.ts","backend/src/modules/im/intent-analyzer.routes.ts","backend/src/modules/im/intent-analyzer.schema.ts","backend/src/modules/im/websocket/gateway.ts","backend/src/modules/im/workflow-dispatcher.service.ts","backend/src/modules/inventory/services/inventory-count.service.ts","backend/src/modules/inventory/services/inventory-transfer.service.ts","backend/src/modules/journal-entries/journal-entries.service.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.test.ts","backend/src/modules/journey-orchestration/journey-orchestration.service.ts","backend/src/modules/knowledge-capture/knowledge-ai.service.ts","backend/src/modules/knowledge-capture/knowledge-capture.service.test.ts","backend/src/modules/knowledge-capture/knowledge-capture.service.ts","backend/src/modules/knowledge-capture/knowledge-feedback.service.ts","backend/src/modules/knowledge/knowledge-collaboration.service.ts","backend/src/modules/knowledge/knowledge-import.service.ts","backend/src/modules/knowledge/knowledge-interaction.service.ts","backend/src/modules/knowledge/knowledge-stage.service.ts","backend/src/modules/knowledge/knowledge.routes.ts","backend/src/modules/knowledge/knowledge.schema.ts","backend/src/modules/landing-pages/landing-page.routes.ts","backend/src/modules/landing-pages/landing-page.schema.ts","backend/src/modules/landing-pages/landing-page.service.ts","backend/src/modules/lead-qualification/qualification.service.test.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.routes.ts","backend/src/modules/lead-scoring-ai/lead-scoring-ai.schema.ts","backend/src/modules/lead-scoring/lead-scoring.service.ts","backend/src/modules/leads/lead-import.service.ts","backend/src/modules/leads/lead.service.test.ts","backend/src/modules/livestream-gifts/livestream-gifts.service.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.test.ts","backend/src/modules/livestream-groupbuy/livestream-groupbuy-conversion.service.ts","backend/src/modules/livestream-products/index.ts","backend/src/modules/livestream-schedules/livestream-schedule.service.test.ts","backend/src/modules/livestream-scripts/livestream-script.service.test.ts","backend/src/modules/livestream/livestream.service.test.ts","backend/src/modules/location-assessments/location-assessment.service.test.ts","backend/src/modules/location-assessments/location-assessment.service.ts","backend/src/modules/maintenance/services/maintenance-plans.service.ts","backend/src/modules/maintenance/services/maintenance-tasks.service.ts","backend/src/modules/marketing-automation/workflow-action.service.test.ts","backend/src/modules/marketing-automation/workflow.service.ts","backend/src/modules/marketing-calendar/marketing-calendar.service.test.ts","backend/src/modules/marketing-content/marketing-content.logic.ts","backend/src/modules/marketing-content/marketing-content.service.test.ts","backend/src/modules/marketing-content/marketing-content.service.ts","backend/src/modules/marketing-forms/marketing-form.service.test.ts","backend/src/modules/marketing-forms/marketing-form.service.ts","backend/src/modules/marketing-matrix/matrix.service.test.ts","backend/src/modules/marketing-north-star/marketing-north-star.service.test.ts","backend/src/modules/marketing-timeslots/marketing-timeslots.service.test.ts","backend/src/modules/marketing-tools/marketing-tools.service.ts","backend/src/modules/marketing-workflows/marketing-workflow.service.test.ts","backend/src/modules/marketing/services/attribution.service.ts","backend/src/modules/marketing/services/touchpoint.service.ts","backend/src/modules/meddpicc-analyses/meddpicc.service.ts","backend/src/modules/menus/menu.service.ts","backend/src/modules/opportunities/__tests__/opportunity.edge-cases.test.ts","backend/src/modules/opportunities/opportunity.service.test.ts","backend/src/modules/orders/order.service.test.ts","backend/src/modules/orders/order.service.ts","backend/src/modules/outbound/outbound.service.test.ts","backend/src/modules/partner-customers/partner-customer.service.ts","backend/src/modules/partners/partner.service.ts","backend/src/modules/payments/payment-plan.service.ts","backend/src/modules/payments/payment-statement.service.ts","backend/src/modules/pm/pm.service.ts","backend/src/modules/positions/positions.service.test.ts","backend/src/modules/price-books/price-book.service.ts","backend/src/modules/process-designer/process-designer.service.test.ts","backend/src/modules/process-designer/process-designer.service.ts","backend/src/modules/products/routes/sku.routes.ts","backend/src/modules/products/services/sku.schema.ts","backend/src/modules/products/services/sku.service.test.ts","backend/src/modules/products/services/sku.service.ts","backend/src/modules/projects/installation-project.service.test.ts","backend/src/modules/projects/installation-project.service.ts","backend/src/modules/projects/project-gantt.service.ts","backend/src/modules/projects/project.service.test.ts","backend/src/modules/projects/project.service.ts","backend/src/modules/projects/services/gantt.service.test.ts","backend/src/modules/projects/services/gantt.service.ts","backend/src/modules/projects/services/milestone.service.ts","backend/src/modules/projects/services/project.service.ts","backend/src/modules/projects/services/task.service.ts","backend/src/modules/projects/services/ticket.service.ts","backend/src/modules/purchase-orders/purchase-order.service.test.ts","backend/src/modules/purchase-orders/purchase-order.service.ts","backend/src/modules/quotes/__tests__/quote.edge-cases.test.ts","backend/src/modules/quotes/quote-decompose.service.ts","backend/src/modules/quotes/quote.service.test.ts","backend/src/modules/quotes/quote.service.ts","backend/src/modules/realtime-trigger/realtime-trigger.routes.ts","backend/src/modules/realtime-trigger/realtime-trigger.schema.ts","backend/src/modules/realtime-trigger/realtime-trigger.service.ts","backend/src/modules/reconciliation/bank-import.service.ts","backend/src/modules/reconciliation/matching-engine.service.test.ts","backend/src/modules/reconciliation/matching-engine.service.ts","backend/src/modules/redemptions/redemptions.service.test.ts","backend/src/modules/redemptions/redemptions.service.ts","backend/src/modules/renewal-tasks/renewal-task.service.test.ts","backend/src/modules/renewal-tasks/renewal-task.service.ts","backend/src/modules/renewals/renewal.service.test.ts","backend/src/modules/renewals/renewal.service.ts","backend/src/modules/reports/report.controller.ts","backend/src/modules/reports/report.service.test.ts","backend/src/modules/reports/report.service.ts","backend/src/modules/resource-requests/__tests__/resource-request.service.test.ts","backend/src/modules/resource-requests/resource-request.service.ts","backend/src/modules/revenue/ar-ledger.service.ts","backend/src/modules/revenue/event-integration.service.ts","backend/src/modules/revenue/invoice-items.service.ts","backend/src/modules/revenue/revenue-overview.service.ts","backend/src/modules/revenue/revenue-recognition.service.ts","backend/src/modules/revenue/sales-commission-compat.service.ts","backend/src/modules/revenue/sales-commission-settlement.service.ts","backend/src/modules/revenue/sales-commission.controller.ts","backend/src/modules/rma/rma.service.test.ts","backend/src/modules/rma/rma.service.ts","backend/src/modules/roles/role.service.ts","backend/src/modules/sample-requests/sample-request.service.test.ts","backend/src/modules/satisfaction/satisfaction.service.ts","backend/src/modules/search/search.schema.ts","backend/src/modules/search/search.service.test.ts","backend/src/modules/search/search.service.ts","backend/src/modules/segments/segment.service.test.ts","backend/src/modules/segments/segment.service.ts","backend/src/modules/serial-numbers/sn.service.ts","backend/src/modules/service-monitor/service-disruption.service.test.ts","backend/src/modules/service-monitor/service-disruption.service.ts","backend/src/modules/service/services/ticket-gantt.service.ts","backend/src/modules/sla/sla.service.test.ts","backend/src/modules/sla/sla.service.ts","backend/src/modules/sms-marketing/sms-marketing.service.test.ts","backend/src/modules/sms-marketing/sms-marketing.service.ts","backend/src/modules/social-accounts/social-account.service.test.ts","backend/src/modules/social-auto-replies/social-auto-reply.service.test.ts","backend/src/modules/social-competitors/social-competitor.routes.ts","backend/src/modules/social-competitors/social-competitor.schema.ts","backend/src/modules/social-competitors/social-competitor.service.test.ts","backend/src/modules/social-followers/social-follower.routes.ts","backend/src/modules/social-followers/social-follower.schema.ts","backend/src/modules/social-followers/social-follower.service.test.ts","backend/src/modules/social-followers/social-follower.service.ts","backend/src/modules/social-hot-topics/social-hot-topic.routes.ts","backend/src/modules/social-hot-topics/social-hot-topic.schema.ts","backend/src/modules/social-interactions/social-interactions.logic.ts","backend/src/modules/social-interactions/social-interactions.service.test.ts","backend/src/modules/social-posts/social-post.service.test.ts","backend/src/modules/spare-parts/spare-part.routes.ts","backend/src/modules/spare-parts/spare-part.schema.ts","backend/src/modules/spare-parts/spare-part.service.ts","backend/src/modules/stage-knowledge/stage-knowledge.service.ts","backend/src/modules/store-settlements/store-settlements.service.test.ts","backend/src/modules/store-settlements/store-settlements.service.ts","backend/src/modules/stores/store.service.test.ts","backend/src/modules/succession-plans/succession-plans.service.test.ts","backend/src/modules/succession-plans/succession-plans.service.ts","backend/src/modules/supplier-payments/supplier-payments.routes.ts","backend/src/modules/supplier-payments/supplier-payments.service.ts","backend/src/modules/suppliers/supplier.routes.ts","backend/src/modules/suppliers/supplier.schema.ts","backend/src/modules/supply-chain/purchase-order.service.ts","backend/src/modules/supply-chain/supplier-management.service.ts","backend/src/modules/supply-chain/supply-chain.service.test.ts","backend/src/modules/supply-chain/supply-chain.service.ts","backend/src/modules/swot-analyses/swot.service.test.ts","backend/src/modules/swot-analyses/swot.service.ts","backend/src/modules/system/system.service.test.ts","backend/src/modules/targets/target.service.test.ts","backend/src/modules/targets/target.service.ts","backend/src/modules/tenant-configs/tenant-config.service.ts","backend/src/modules/treasury/__tests__/payment-request.service.test.ts","backend/src/modules/treasury/daily-settlement.service.ts","backend/src/modules/treasury/payment-request.service.ts","backend/src/modules/treasury/treasury-overview.service.ts","backend/src/modules/users/user.service.ts","backend/src/modules/web-tracking/web-tracking.service.ts","backend/src/routes/register-domain-routes.ts","backend/src/shared/constants/events/im.ts","backend/src/shared/constants/events/marketing.ts","backend/src/shared/constants/permissions.ts","backend/src/shared/constants/statuses.ts","backend/src/shared/middleware/auth.middleware.ts","backend/src/shared/state-machines/__tests__/crm-activity.machine.test.ts","backend/src/shared/state-machines/__tests__/groupbuy-campaign.machine.test.ts","backend/src/shared/state-machines/__tests__/opportunity.machine.test.ts","backend/src/shared/state-machines/__tests__/quote.machine.test.ts","backend/src/shared/state-machines/__tests__/rma.machine.test.ts","backend/src/shared/state-machines/__tests__/state-machine-boundaries.test.ts","backend/src/shared/state-machines/index.ts","backend/src/shared/state-machines/machines/contract.machine.ts","backend/src/shared/state-machines/machines/crm-activity.machine.ts","backend/src/shared/state-machines/machines/groupbuy-campaign.machine.ts","backend/src/shared/state-machines/machines/livestream-schedule.machine.ts","backend/src/shared/state-machines/machines/order.machine.ts","backend/src/shared/state-machines/machines/quote.machine.ts","backend/src/shared/state-machines/machines/rma.machine.ts","backend/src/shared/state-machines/types.ts","backend/src/shared/state-machines/utils/transitions/community.transitions.ts","backend/src/shared/state-machines/utils/transitions/finance.transitions.ts","backend/src/shared/state-machines/utils/transitions/hr.transitions.ts","backend/src/shared/state-machines/utils/transitions/marketing.transitions.ts","backend/src/shared/state-machines/utils/transitions/operations.transitions.ts","backend/src/shared/state-machines/utils/transitions/sales.transitions.ts","backend/src/shared/state-machines/utils/transitions/service.transitions.ts","backend/src/shared/utils/biz-code.ts","backend/src/shared/utils/crud.test.ts","backend/src/shared/utils/money-wire.ts","backend/tests/api/acquisition-center.test.ts","backend/tests/api/admin-settings.test.ts","backend/tests/api/ai-agents-workflows-training.test.ts","backend/tests/api/alliance-agreements.test.ts","backend/tests/api/alliance-merchants.test.ts","backend/tests/api/analytics-dashboard.test.ts","backend/tests/api/community-levels.test.ts","backend/tests/api/content-categories.test.ts","backend/tests/api/content-copyright.test.ts","backend/tests/api/content-creation.test.ts","backend/tests/api/content-templates.test.ts","backend/tests/api/contracts.test.ts","backend/tests/api/cost-allocation.test.ts","backend/tests/api/crm-activities.test.ts","backend/tests/api/customer-segmentation.test.ts","backend/tests/api/event-subscriptions.test.ts","backend/tests/api/expense-claims.test.ts","backend/tests/api/finance-credit-cash.test.ts","backend/tests/api/finance-gap-closure.test.ts","backend/tests/api/financial-reports.test.ts","backend/tests/api/geo-keywords.test.ts","backend/tests/api/geo-pois.test.ts","backend/tests/api/groupbuy-platforms.test.ts","backend/tests/api/groupbuy-products.test.ts","backend/tests/api/hr-services.test.ts","backend/tests/api/im.test.ts","backend/tests/api/knowledge-feedback.test.ts","backend/tests/api/leads-governance.test.ts","backend/tests/api/marketing-services.test.ts","backend/tests/api/module-catalog.ts","backend/tests/api/opportunities.test.ts","backend/tests/api/orders.test.ts","backend/tests/api/product-services.test.ts","backend/tests/api/project-services.test.ts","backend/tests/api/quotes.test.ts","backend/tests/api/realtime-trigger.test.ts","backend/tests/api/redemptions.test.ts","backend/tests/api/reports-schedules.test.ts","backend/tests/api/revenue-commissions-compat.test.ts","backend/tests/api/revenue-event-payment-compat.test.ts","backend/tests/api/revenue-invoice-items-compat.test.ts","backend/tests/unit/process-core/workflow-e2e.test.ts","docs/governance/acquisition-center-domain-governance-2026-05-17.md","docs/governance/baseline-and-experience.md","docs/governance/business-object-database-alignment-2026-05-07.md","docs/governance/formrules-zod-product-decisions-2026-04-29.md","docs/governance/local-business-source-of-truth-2026-05-10.md","docs/governance/project-governance-test-plan-2026-05-16.md","docs/operations/production-launch-checklist.md","e2e/helpers/chain-runner.ts","e2e/helpers/create-payloads.ts","e2e/helpers/p0-chain.helper.ts","e2e/package.json","e2e/scripts/lib/view-audit.mjs","e2e/scripts/lib/view-audit.overrides.mjs","e2e/scripts/verify-view-governance.mjs","e2e/tests/auth/admin-center-procurement-warehouse-smoke.spec.ts","e2e/tests/auth/channel-integrations-smoke.spec.ts","e2e/tests/create-forms/create-ui-all.spec.ts","e2e/tests/navigation/dashboard-click-input-interaction.spec.ts","e2e/tests/navigation/full-menu-click.spec.ts","e2e/tests/navigation/full-menu-deep-actions.spec.ts","e2e/tests/ui-modules/view-governance.generated.json","frontend/src/api/index.ts","frontend/src/api/modules/dimension-transform.ts","frontend/src/api/modules/im-websocket.ts","frontend/src/components/common/StatsCard.vue","frontend/src/composables/useListPage.ts","frontend/src/router/__tests__/system-infra-menu-governance.test.ts","frontend/src/router/menu.ts","frontend/src/router/modules/system.ts","frontend/src/router/not-found-support.ts","frontend/src/styles/index.scss","frontend/src/views/NotFound.vue","frontend/src/views/abm-marketing/Index.vue","frontend/src/views/acquisition/components/MarketingCalendar.vue","frontend/src/views/ad-analytics/Index.vue","frontend/src/views/ad-campaigns/Detail.vue","frontend/src/views/ad-campaigns/Index.vue","frontend/src/views/ad-creatives/Form.vue","frontend/src/views/admin/Workbench.vue","frontend/src/views/ai-agents/Create.vue","frontend/src/views/ai-agents/Index.vue","frontend/src/views/ai-agents/LeadCollector.vue","frontend/src/views/ai-agents/Metrics.vue","frontend/src/views/ai-agents/Models.vue","frontend/src/views/ai-agents/Overview.vue","frontend/src/views/ai-agents/Tasks.vue","frontend/src/views/ai-agents/components/AgentModelManager.vue","frontend/src/views/alliance-agreements/Detail.vue","frontend/src/views/alliance-campaigns/Detail.vue","frontend/src/views/alliance-coupons/Detail.vue","frontend/src/views/alliance-partners/Detail.vue","frontend/src/views/alliance-settlements/Detail.vue","frontend/src/views/analytics/Index.vue","frontend/src/views/analytics/roi/Index.vue","frontend/src/views/approvals/Detail.vue","frontend/src/views/approvals/Index.vue","frontend/src/views/ar-ledger/Detail.vue","frontend/src/views/ar-ledger/Index.vue","frontend/src/views/ar-ledger/components/CollectionManager.vue","frontend/src/views/ar-ledger/components/StatementGenerator.vue","frontend/src/views/assembly/AssemblyOrderList.vue","frontend/src/views/assembly/AssemblyReceiptForm.vue","frontend/src/views/assembly/AssemblyReceiptList.vue","frontend/src/views/assembly/BomForm.vue","frontend/src/views/assembly/BomList.vue","frontend/src/views/assembly/MaterialIssueForm.vue","frontend/src/views/attribution-models/Index.vue","frontend/src/views/attribution-reports/Index.vue","frontend/src/views/biz-sequences/Form.vue","frontend/src/views/campaign-analytics/Index.vue","frontend/src/views/campaign-library/Index.vue","frontend/src/views/campaigns/wizard/Step1BusinessLine.vue","frontend/src/views/campaigns/wizard/Step2UseCase.vue","frontend/src/views/cash-flow/Detail.vue","frontend/src/views/cash-flow/Form.vue","frontend/src/views/cash-flow/Index.vue","frontend/src/views/channel-analytics/Index.vue","frontend/src/views/channels/Index.vue","frontend/src/views/commissions/Detail.vue","frontend/src/views/commissions/Form.vue","frontend/src/views/community-members/Form.vue","frontend/src/views/content-library/Detail.vue","frontend/src/views/contract-templates/Detail.vue","frontend/src/views/contract-templates/Form.vue","frontend/src/views/contract-templates/Index.vue","frontend/src/views/contract-templates/components/TemplatePreview.vue","frontend/src/views/contract-templates/components/VariablePanel.vue","frontend/src/views/contracts/Form.vue","frontend/src/views/contracts/Index.vue","frontend/src/views/conversion-paths/Index.vue","frontend/src/views/cpq/Index.vue","frontend/src/views/cpq/components/RuleTester.vue","frontend/src/views/customer-analytics/Index.vue","frontend/src/views/customer-balance/Index.vue","frontend/src/views/customer-health/Index.vue","frontend/src/views/customer-marketing/Index.vue","frontend/src/views/customer-profit/Index.vue","frontend/src/views/customers/Form.vue","frontend/src/views/customers/Index.vue","frontend/src/views/customers/components/DetailHealthScore.vue","frontend/src/views/customers/components/DetailLifecyclePanel.vue","frontend/src/views/customers/components/DetailMobile.vue","frontend/src/views/customers/components/DetailRecordTabs.vue","frontend/src/views/customers/components/FormBasicInfo.vue","frontend/src/views/customers/components/FormServiceConfig.vue","frontend/src/views/dashboard/Index.vue","frontend/src/views/dashboard/components/LeadPoolStats.vue","frontend/src/views/dashboard/components/ProfitAnalysis.vue","frontend/src/views/departments/Detail.vue","frontend/src/views/departments/Form.vue","frontend/src/views/departments/Index.vue","frontend/src/views/devices/Detail.vue","frontend/src/views/dimension-transform/Index.vue","frontend/src/views/event-logs/Index.vue","frontend/src/views/expense-claims/Index.vue","frontend/src/views/finance/Index.vue","frontend/src/views/financial-reports/Index.vue","frontend/src/views/geo-analysis/Index.vue","frontend/src/views/geo-reviews/Index.vue","frontend/src/views/groupbuy-commissions/Index.vue","frontend/src/views/groupbuy-influencers/Index.vue","frontend/src/views/groupbuy-inventory/Index.vue","frontend/src/views/groupbuy-platforms/Index.vue","frontend/src/views/hr/Index.vue","frontend/src/views/im-channels/Index.vue","frontend/src/views/im/VideoCallRoom.vue","frontend/src/views/im/components/MessageSearch.vue","frontend/src/views/inventory/AlertSettings.vue","frontend/src/views/inventory/Analytics.vue","frontend/src/views/invoices/Detail.vue","frontend/src/views/invoices/Index.vue","frontend/src/views/knowledge-candidates/Index.vue","frontend/src/views/knowledge-capture/Index.vue","frontend/src/views/knowledge-feedback/Index.vue","frontend/src/views/lead-assignment/Index.vue","frontend/src/views/lead-import/Index.vue","frontend/src/views/lead-pool/Index.vue","frontend/src/views/lead-pools/Index.vue","frontend/src/views/lead-scoring/Index.vue","frontend/src/views/leads/Detail.vue","frontend/src/views/livestream-analytics/Index.vue","frontend/src/views/livestream-gifts/Form.vue","frontend/src/views/livestream-groupbuy-conversion/Index.vue","frontend/src/views/livestream-interactions/Form.vue","frontend/src/views/livestream-rooms/Detail.vue","frontend/src/views/local-events/Index.vue","frontend/src/views/local-promotion/Index.vue","frontend/src/views/maintenance/Calendar.vue","frontend/src/views/maintenance/PlanDetail.vue","frontend/src/views/marketing-automation/Index.vue","frontend/src/views/marketing-calendar/Index.vue","frontend/src/views/marketing-calendar/components/CalendarAgendaView.vue","frontend/src/views/marketing-calendar/components/CalendarMonthView.vue","frontend/src/views/marketing-calendar/components/CalendarWeekView.vue","frontend/src/views/marketing-north-star/Index.vue","frontend/src/views/marketing-north-star/components/NorthStarAlerts.vue","frontend/src/views/marketing-north-star/components/NorthStarDashboard.vue","frontend/src/views/marketing-north-star/components/NorthStarMetricForm.vue","frontend/src/views/marketing-timeslots/Index.vue","frontend/src/views/marketing/Index.vue","frontend/src/views/marketing/budget-alerts/Index.vue","frontend/src/views/mdm/Index.vue","frontend/src/views/member-levels/Index.vue","frontend/src/views/member-points/Index.vue","frontend/src/views/members/Index.vue","frontend/src/views/metric-tree/Index.vue","frontend/src/views/notification-configs/Form.vue","frontend/src/views/notification-configs/Index.vue","frontend/src/views/notifications/Index.vue","frontend/src/views/omnichannel-dashboard/Index.vue","frontend/src/views/orders/Index.vue","frontend/src/views/orders/components/DetailMobile.vue","frontend/src/views/partner-customers/Form.vue","frontend/src/views/partners/Index.vue","frontend/src/views/payment-analytics/AgingChart.vue","frontend/src/views/payment-analytics/Index.vue","frontend/src/views/payment-plans/Index.vue","frontend/src/views/pm/Calendar.vue","frontend/src/views/pm/Detail.vue","frontend/src/views/pm/Index.vue","frontend/src/views/price-books/Detail.vue","frontend/src/views/price-books/Form.vue","frontend/src/views/price-books/Index.vue","frontend/src/views/process-designer/Designer.vue","frontend/src/views/process-designer/ProcessList.vue","frontend/src/views/product-analytics/Index.vue","frontend/src/views/product-categories/Index.vue","frontend/src/views/products/Form.vue","frontend/src/views/products/Index.vue","frontend/src/views/profile/Index.vue","frontend/src/views/projects/Calendar.vue","frontend/src/views/projects/Detail.vue","frontend/src/views/projects/Gantt.vue","frontend/src/views/projects/GlobalGantt.vue","frontend/src/views/projects/Milestones.vue","frontend/src/views/projects/components/gantt/ProjectGanttChart.vue","frontend/src/views/purchase-orders/Detail.vue","frontend/src/views/purchase-orders/Index.vue","frontend/src/views/qr-codes/Index.vue","frontend/src/views/quotes/Detail.vue","frontend/src/views/quotes/Index.vue","frontend/src/views/reconciliation/Detail.vue","frontend/src/views/reconciliation/Index.vue","frontend/src/views/renewals/Detail.vue","frontend/src/views/renewals/Form.vue","frontend/src/views/renewals/Index.vue","frontend/src/views/revenue/Detail.vue","frontend/src/views/revenue/Index.vue","frontend/src/views/roles/components/RoleForm.vue","frontend/src/views/sales-dashboard/Index.vue","frontend/src/views/sales-funnel/Index.vue","frontend/src/views/sample-requests/Detail.vue","frontend/src/views/sample-requests/Index.vue","frontend/src/views/search/Index.vue","frontend/src/views/serial-numbers/Index.vue","frontend/src/views/service-dashboard/components/EngineerRankingPanel.vue","frontend/src/views/service-dashboard/components/OverviewCards.vue","frontend/src/views/service-monitor/Index.vue","frontend/src/views/service/TicketGantt.vue","frontend/src/views/service/components/TicketGanttChart.vue","frontend/src/views/sla/Index.vue","frontend/src/views/sla/components/SLADashboard.vue","frontend/src/views/social-matrix/Index.vue","frontend/src/views/spare-parts/Detail.vue","frontend/src/views/stage-knowledge/Index.vue","frontend/src/views/store-performance/Index.vue","frontend/src/views/stores/Index.vue","frontend/src/views/supplier-center/Index.vue","frontend/src/views/suppliers/Detail.vue","frontend/src/views/suppliers/Index.vue","frontend/src/views/supply-chain/Index.vue","frontend/src/views/targets/Breakdown.vue","frontend/src/views/targets/Detail.vue","frontend/src/views/targets/Index.vue","frontend/src/views/tickets/Form.vue","frontend/src/views/tickets/components/DetailMobile.vue","frontend/src/views/tickets/components/gantt/TicketGanttChart.vue","frontend/src/views/users/components/UserForm.vue","frontend/src/views/utm-tracking/Index.vue","frontend/src/views/video-analytics/Index.vue","frontend/src/views/video-calls/Index.vue","frontend/src/views/video-content/Index.vue","package.json","reports/ai-assist-context-provider-redact.latest.json","reports/api-route-contract-audit.latest.json","reports/api-route-contract-audit.latest.md","reports/api-test-coverage.latest.json","reports/api-test-coverage.latest.md","reports/approval-governance.latest.json","reports/approval-governance.latest.md","reports/commander-workset.latest.json","reports/docs-single-source-audit.latest.json","reports/docs-single-source-audit.latest.md","reports/enum-consistency-audit.latest.json","reports/event-flow-audit.latest.json","reports/event-flow-audit.latest.md","reports/event-publishing-audit.latest.json","reports/event-publishing-audit.latest.md","reports/field-payload-audit.latest.json","reports/formrules-zod-audit.latest.json","reports/fullstack-alignment-audit.latest.json","reports/harness-dashboard.latest.json","reports/list-page-routes-audit.latest.json","reports/migration-drift-diff.latest.sql","reports/migration-drift-summary.latest.json","reports/migration-safety-audit.latest.json","reports/missing-events-audit.latest.json","reports/missing-events-audit.latest.md","reports/module-coverage-matrix.latest.json","reports/module-grades.latest.json","reports/n1-queries-audit.latest.json","reports/outbox-atomicity-audit.latest.json","reports/prisma-zod-contract-audit.latest.json","reports/prisma-zod-contract-audit.latest.md","reports/process-definition-consistency.latest.json","reports/process-definition-consistency.latest.md","reports/project-census.baseline.json","reports/project-census.latest.json","reports/response-columns-audit.latest.json","reports/rls-coverage-audit.latest.json","reports/route-registration-audit.latest.json","reports/route-registration-audit.latest.md","reports/state-machine-integration-audit.latest.json","reports/state-machine-integration-audit.latest.md","reports/tenant-security-audit.latest.json","reports/time-analysis-audit.latest.json","reports/type-debt-audit.latest.json","reports/view-module-audit.latest.json","reports/workflow-completeness.latest.json","reports/workflow-completeness.latest.md","scripts/audit-event-flow.ts","scripts/audit-formrules-zod.ts","scripts/audit-module-coverage.ts","scripts/audit-type-debt.ts","scripts/governance-commander-brief.ts","scripts/harness/audit-registry.ts","scripts/harness/cli.ts","scripts/harness/grade.ts","scripts/harness/report.ts","scripts/harness/types.ts","scripts/restart-dev.sh","shared/create-route-catalog.ts"]}],"total_commits":0,"head_commit":{"id":"7bff77f02f58e23bad0ebcbdbb262111707628e7","message":"Merge gitea/main:纳入 Gitea 独有的模块结构文档\n\n保留 MODULE-STRUCTURE-DOCUMENT.md;price-definition.schema.ts 维持已删除状态\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub/commit/7bff77f02f58e23bad0ebcbdbb262111707628e7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-05-24T21:52:58-07:00","added":["MODULE-STRUCTURE-DOCUMENT.md"],"removed":[],"modified":[]},"repository":{"id":6,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub","full_name":"luoanwu/juhi-omni-knowledge-hub","description":"巨嗨全域智库 - B2B RevOps 全生命周期平台","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5485954,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub.git","original_url":"https://github.com/laoluojuhai/juhi-omni-knowledge-hub.git","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":10,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-02-23T23:57:52+08:00","updated_at":"2026-05-23T10:41:06+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":false,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
16
|
1779684793
|
1779686657
|
0
|
1779684792
|
1779686657
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23465
|
feat: ship quotation fulfillment and quote center feat: ship quotation fulfillment and quote center parity...
|
72
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd4b413c9f284e33472f905c047eb4bbb99b2717","after":"fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/bd4b413c9f284e33472f905c047eb4bbb99b2717...fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","commits":[{"id":"fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","message":"feat: ship quotation fulfillment and quote center parity\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T20:56:44-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".dockerignore","apps/api-fastify/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-fastify/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-fastify/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-fastify/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-fastify/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-fastify/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/routes/fulfillment.ts","apps/api-nestjs/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-nestjs/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-nestjs/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-nestjs/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-nestjs/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-nestjs/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-nestjs/src/fulfillment/fulfillment.controller.ts","apps/api-nestjs/src/fulfillment/fulfillment.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/quotation/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/scripts/build-mobile.mjs","apps/web/src/app/fulfillment/[acceptanceToken]/page.tsx","apps/web/src/app/manifest.ts","apps/web/src/components/BusinessTraceTimeline.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/api/fulfillment-api.ts","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/components/PublicFulfillmentView.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","deploy/vm/nginx.conf","design-qa.md","docs/deployment/local-vm.md","docs/deployment/mobile-app.md","docs/domain/business-event-trace-blueprint.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/product-accessories-inventory-blueprint.md","docs/domain/role-permission-blueprint.md","packages/contracts/src/fulfillment.ts","reports/role-permissions.latest.json","scripts/check-role-permissions.mjs","scripts/vm-deploy.sh","sites/haizan-quote-center/.gitignore","sites/haizan-quote-center/.npmrc","sites/haizan-quote-center/.openai/hosting.json","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-001175b1.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-52306abf.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-875ccdd4.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-98bbbccb.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-ff2310f5.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/style.css","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-013b2f2f.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-0638449e.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44745446.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44e03052.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-971fb274.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-f6b33328.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/style.css","sites/haizan-quote-center/README.md","sites/haizan-quote-center/SYNC_SOURCE.md","sites/haizan-quote-center/app/admin-client.tsx","sites/haizan-quote-center/app/api/bootstrap/route.ts","sites/haizan-quote-center/app/api/contract-templates/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/approve/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/revise/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/sign/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/submit/route.ts","sites/haizan-quote-center/app/api/contracts/route.ts","sites/haizan-quote-center/app/api/images/[...key]/route.ts","sites/haizan-quote-center/app/api/operations/action/route.ts","sites/haizan-quote-center/app/api/operations/route.ts","sites/haizan-quote-center/app/api/orders/[id]/payments/route.ts","sites/haizan-quote-center/app/api/orders/[id]/steps/[stepId]/route.ts","sites/haizan-quote-center/app/api/orders/route.ts","sites/haizan-quote-center/app/api/payment-proofs/[...key]/route.ts","sites/haizan-quote-center/app/api/payments/[id]/review/route.ts","sites/haizan-quote-center/app/api/products/[id]/route.ts","sites/haizan-quote-center/app/api/products/image/route.ts","sites/haizan-quote-center/app/api/products/route.ts","sites/haizan-quote-center/app/api/public/catalog/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/sign/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/payments/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/route.ts","sites/haizan-quote-center/app/api/public/quick-quotes/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/confirm/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/requests/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/approve/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/claim/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/submit/route.ts","sites/haizan-quote-center/app/api/requests/[id]/review/route.ts","sites/haizan-quote-center/app/c/[token]/contract-public-client.tsx","sites/haizan-quote-center/app/c/[token]/page.tsx","sites/haizan-quote-center/app/catalog/catalog-client.tsx","sites/haizan-quote-center/app/catalog/page.tsx","sites/haizan-quote-center/app/chatgpt-auth.ts","sites/haizan-quote-center/app/contract-center.tsx","sites/haizan-quote-center/app/globals.css","sites/haizan-quote-center/app/layout.tsx","sites/haizan-quote-center/app/o/[token]/order-public-client.tsx","sites/haizan-quote-center/app/o/[token]/page.tsx","sites/haizan-quote-center/app/order-center.tsx","sites/haizan-quote-center/app/page.tsx","sites/haizan-quote-center/app/q/[token]/page.tsx","sites/haizan-quote-center/app/q/[token]/quote-public-client.tsx","sites/haizan-quote-center/app/supply-chain-center.tsx","sites/haizan-quote-center/db/contracts.ts","sites/haizan-quote-center/db/index.ts","sites/haizan-quote-center/db/operations.ts","sites/haizan-quote-center/db/orders.ts","sites/haizan-quote-center/db/queries.ts","sites/haizan-quote-center/db/runtime.ts","sites/haizan-quote-center/db/schema.ts","sites/haizan-quote-center/design-qa.md","sites/haizan-quote-center/drizzle.config.ts","sites/haizan-quote-center/drizzle/0000_lovely_captain_cross.sql","sites/haizan-quote-center/drizzle/0001_stiff_goblin_queen.sql","sites/haizan-quote-center/drizzle/0002_colossal_dust.sql","sites/haizan-quote-center/drizzle/0003_absent_mandarin.sql","sites/haizan-quote-center/drizzle/0004_wealthy_pretty_boy.sql","sites/haizan-quote-center/drizzle/0005_stale_polaris.sql","sites/haizan-quote-center/drizzle/meta/0000_snapshot.json","sites/haizan-quote-center/drizzle/meta/0001_snapshot.json","sites/haizan-quote-center/drizzle/meta/0002_snapshot.json","sites/haizan-quote-center/drizzle/meta/0003_snapshot.json","sites/haizan-quote-center/drizzle/meta/0004_snapshot.json","sites/haizan-quote-center/drizzle/meta/0005_snapshot.json","sites/haizan-quote-center/drizzle/meta/_journal.json","sites/haizan-quote-center/eslint.config.mjs","sites/haizan-quote-center/examples/d1/app/api/notes/route.ts","sites/haizan-quote-center/examples/d1/db/schema.ts","sites/haizan-quote-center/next.config.ts","sites/haizan-quote-center/package-lock.json","sites/haizan-quote-center/package.json","sites/haizan-quote-center/postcss.config.mjs","sites/haizan-quote-center/public/favicon.svg","sites/haizan-quote-center/public/file.svg","sites/haizan-quote-center/public/globe.svg","sites/haizan-quote-center/public/window.svg","sites/haizan-quote-center/qa/comparison-source-left-local-right.png","sites/haizan-quote-center/qa/implementation-local-1280x720.png","sites/haizan-quote-center/qa/implementation-local-mobile-390x844.png","sites/haizan-quote-center/qa/source-online-1280x720.png","sites/haizan-quote-center/scripts/build-verified.sh","sites/haizan-quote-center/scripts/install-ci.sh","sites/haizan-quote-center/scripts/sites-env.sh","sites/haizan-quote-center/scripts/validate-artifact.sh","sites/haizan-quote-center/tests/rendered-html.test.mjs","sites/haizan-quote-center/tsconfig.json","sites/haizan-quote-center/vite.config.ts","sites/haizan-quote-center/worker-configuration.d.ts","sites/haizan-quote-center/worker/index.ts"],"removed":[],"modified":[".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/modules/customers/customers.service.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/routes/customers.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/src/routes/quotations.ts","apps/api-fastify/test/http.acceptance.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/create-app.ts","apps/api-nestjs/src/customers/customers.controller.ts","apps/api-nestjs/src/customers/customers.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.controller.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/quote/[accessToken]/page.tsx","apps/web/src/app/quote/[accessToken]/print/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/features/customers/components/CustomerLibrary.tsx","apps/web/src/features/customers/hooks/use-customers.ts","apps/web/src/features/products/api/products-api.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/products/hooks/use-products.ts","apps/web/src/features/quotations/api/quotations-api.ts","apps/web/src/features/quotations/components/PublicQuotationView.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/features/quotations/hooks/use-quotations.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/store/realtime.ts","apps/web/tsconfig.json","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.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/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","message":"feat: ship quotation fulfillment and quote center parity\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/fdf7b594e1d70ff3b5a54d51e55eeb4bb0262b7a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T20:56:44-07:00","added":[".agents/skills/business-module-intake/SKILL.md",".dockerignore","apps/api-fastify/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-fastify/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-fastify/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-fastify/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-fastify/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-fastify/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/routes/fulfillment.ts","apps/api-nestjs/prisma/migrations/20260730210000_order_fulfillment/migration.sql","apps/api-nestjs/prisma/migrations/20260730230000_product_accessories_stocktake/migration.sql","apps/api-nestjs/prisma/migrations/20260731000000_procurement_customer_service_enums/migration.sql","apps/api-nestjs/prisma/migrations/20260731010000_procurement_customer_service/migration.sql","apps/api-nestjs/prisma/migrations/20260731020000_business_event_trace/migration.sql","apps/api-nestjs/prisma/migrations/20260731021000_business_trace_relation_unique/migration.sql","apps/api-nestjs/src/fulfillment/fulfillment.controller.ts","apps/api-nestjs/src/fulfillment/fulfillment.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/quotation/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/scripts/build-mobile.mjs","apps/web/src/app/fulfillment/[acceptanceToken]/page.tsx","apps/web/src/app/manifest.ts","apps/web/src/components/BusinessTraceTimeline.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/api/fulfillment-api.ts","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/components/PublicFulfillmentView.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","deploy/vm/nginx.conf","design-qa.md","docs/deployment/local-vm.md","docs/deployment/mobile-app.md","docs/domain/business-event-trace-blueprint.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/product-accessories-inventory-blueprint.md","docs/domain/role-permission-blueprint.md","packages/contracts/src/fulfillment.ts","reports/role-permissions.latest.json","scripts/check-role-permissions.mjs","scripts/vm-deploy.sh","sites/haizan-quote-center/.gitignore","sites/haizan-quote-center/.npmrc","sites/haizan-quote-center/.openai/hosting.json","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-001175b1.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-52306abf.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-875ccdd4.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-98bbbccb.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/geist-ff2310f5.woff2","sites/haizan-quote-center/.vinext/fonts/geist-8ac0455e797f/style.css","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-013b2f2f.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-0638449e.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44745446.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-44e03052.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-971fb274.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/geist-mono-f6b33328.woff2","sites/haizan-quote-center/.vinext/fonts/geist-mono-00e989178794/style.css","sites/haizan-quote-center/README.md","sites/haizan-quote-center/SYNC_SOURCE.md","sites/haizan-quote-center/app/admin-client.tsx","sites/haizan-quote-center/app/api/bootstrap/route.ts","sites/haizan-quote-center/app/api/contract-templates/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/approve/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/revise/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/sign/route.ts","sites/haizan-quote-center/app/api/contracts/[id]/submit/route.ts","sites/haizan-quote-center/app/api/contracts/route.ts","sites/haizan-quote-center/app/api/images/[...key]/route.ts","sites/haizan-quote-center/app/api/operations/action/route.ts","sites/haizan-quote-center/app/api/operations/route.ts","sites/haizan-quote-center/app/api/orders/[id]/payments/route.ts","sites/haizan-quote-center/app/api/orders/[id]/steps/[stepId]/route.ts","sites/haizan-quote-center/app/api/orders/route.ts","sites/haizan-quote-center/app/api/payment-proofs/[...key]/route.ts","sites/haizan-quote-center/app/api/payments/[id]/review/route.ts","sites/haizan-quote-center/app/api/products/[id]/route.ts","sites/haizan-quote-center/app/api/products/image/route.ts","sites/haizan-quote-center/app/api/products/route.ts","sites/haizan-quote-center/app/api/public/catalog/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/route.ts","sites/haizan-quote-center/app/api/public/contracts/[token]/sign/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/payments/route.ts","sites/haizan-quote-center/app/api/public/orders/[token]/route.ts","sites/haizan-quote-center/app/api/public/quick-quotes/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/confirm/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/requests/route.ts","sites/haizan-quote-center/app/api/public/quotes/[token]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/approve/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/claim/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/route.ts","sites/haizan-quote-center/app/api/quotes/[id]/submit/route.ts","sites/haizan-quote-center/app/api/requests/[id]/review/route.ts","sites/haizan-quote-center/app/c/[token]/contract-public-client.tsx","sites/haizan-quote-center/app/c/[token]/page.tsx","sites/haizan-quote-center/app/catalog/catalog-client.tsx","sites/haizan-quote-center/app/catalog/page.tsx","sites/haizan-quote-center/app/chatgpt-auth.ts","sites/haizan-quote-center/app/contract-center.tsx","sites/haizan-quote-center/app/globals.css","sites/haizan-quote-center/app/layout.tsx","sites/haizan-quote-center/app/o/[token]/order-public-client.tsx","sites/haizan-quote-center/app/o/[token]/page.tsx","sites/haizan-quote-center/app/order-center.tsx","sites/haizan-quote-center/app/page.tsx","sites/haizan-quote-center/app/q/[token]/page.tsx","sites/haizan-quote-center/app/q/[token]/quote-public-client.tsx","sites/haizan-quote-center/app/supply-chain-center.tsx","sites/haizan-quote-center/db/contracts.ts","sites/haizan-quote-center/db/index.ts","sites/haizan-quote-center/db/operations.ts","sites/haizan-quote-center/db/orders.ts","sites/haizan-quote-center/db/queries.ts","sites/haizan-quote-center/db/runtime.ts","sites/haizan-quote-center/db/schema.ts","sites/haizan-quote-center/design-qa.md","sites/haizan-quote-center/drizzle.config.ts","sites/haizan-quote-center/drizzle/0000_lovely_captain_cross.sql","sites/haizan-quote-center/drizzle/0001_stiff_goblin_queen.sql","sites/haizan-quote-center/drizzle/0002_colossal_dust.sql","sites/haizan-quote-center/drizzle/0003_absent_mandarin.sql","sites/haizan-quote-center/drizzle/0004_wealthy_pretty_boy.sql","sites/haizan-quote-center/drizzle/0005_stale_polaris.sql","sites/haizan-quote-center/drizzle/meta/0000_snapshot.json","sites/haizan-quote-center/drizzle/meta/0001_snapshot.json","sites/haizan-quote-center/drizzle/meta/0002_snapshot.json","sites/haizan-quote-center/drizzle/meta/0003_snapshot.json","sites/haizan-quote-center/drizzle/meta/0004_snapshot.json","sites/haizan-quote-center/drizzle/meta/0005_snapshot.json","sites/haizan-quote-center/drizzle/meta/_journal.json","sites/haizan-quote-center/eslint.config.mjs","sites/haizan-quote-center/examples/d1/app/api/notes/route.ts","sites/haizan-quote-center/examples/d1/db/schema.ts","sites/haizan-quote-center/next.config.ts","sites/haizan-quote-center/package-lock.json","sites/haizan-quote-center/package.json","sites/haizan-quote-center/postcss.config.mjs","sites/haizan-quote-center/public/favicon.svg","sites/haizan-quote-center/public/file.svg","sites/haizan-quote-center/public/globe.svg","sites/haizan-quote-center/public/window.svg","sites/haizan-quote-center/qa/comparison-source-left-local-right.png","sites/haizan-quote-center/qa/implementation-local-1280x720.png","sites/haizan-quote-center/qa/implementation-local-mobile-390x844.png","sites/haizan-quote-center/qa/source-online-1280x720.png","sites/haizan-quote-center/scripts/build-verified.sh","sites/haizan-quote-center/scripts/install-ci.sh","sites/haizan-quote-center/scripts/sites-env.sh","sites/haizan-quote-center/scripts/validate-artifact.sh","sites/haizan-quote-center/tests/rendered-html.test.mjs","sites/haizan-quote-center/tsconfig.json","sites/haizan-quote-center/vite.config.ts","sites/haizan-quote-center/worker-configuration.d.ts","sites/haizan-quote-center/worker/index.ts"],"removed":[],"modified":[".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/modules/customers/customers.service.ts","apps/api-fastify/src/modules/products/products.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/routes/customers.ts","apps/api-fastify/src/routes/products.ts","apps/api-fastify/src/routes/quotations.ts","apps/api-fastify/test/http.acceptance.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/create-app.ts","apps/api-nestjs/src/customers/customers.controller.ts","apps/api-nestjs/src/customers/customers.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/main.ts","apps/api-nestjs/src/products/products.controller.ts","apps/api-nestjs/src/products/products.service.ts","apps/api-nestjs/src/quotations/quotations.controller.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/.env.example","apps/web/e2e/acceptance.spec.ts","apps/web/eslint.config.mjs","apps/web/next.config.ts","apps/web/package.json","apps/web/src/app/globals.css","apps/web/src/app/layout.tsx","apps/web/src/app/page.tsx","apps/web/src/app/quote/[accessToken]/page.tsx","apps/web/src/app/quote/[accessToken]/print/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/OrdersPanel.tsx","apps/web/src/components/RealtimeBar.tsx","apps/web/src/components/ui/button.tsx","apps/web/src/components/ui/card.tsx","apps/web/src/components/ui/input.tsx","apps/web/src/features/customers/components/CustomerLibrary.tsx","apps/web/src/features/customers/hooks/use-customers.ts","apps/web/src/features/products/api/products-api.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/products/hooks/use-products.ts","apps/web/src/features/quotations/api/quotations-api.ts","apps/web/src/features/quotations/components/PublicQuotationView.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/features/quotations/hooks/use-quotations.ts","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/src/lib/providers.tsx","apps/web/src/store/realtime.ts","apps/web/tsconfig.json","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.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/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":614,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-07-31T04:04:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1785470840
|
1785470910
|
0
|
1785470839
|
1785470910
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23616
|
chore(reports): refresh clean static evidence
|
101
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
4cd3b60bb1b71bceff7545588e485b9ad0b33517
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bcf51b52439dd8d332699a9f312305c102f9d379","after":"4cd3b60bb1b71bceff7545588e485b9ad0b33517","compare_url":"https://gitea.g-hi.com/luoanwu/secret-identity/compare/bcf51b52439dd8d332699a9f312305c102f9d379...4cd3b60bb1b71bceff7545588e485b9ad0b33517","commits":[{"id":"4cd3b60bb1b71bceff7545588e485b9ad0b33517","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/4cd3b60bb1b71bceff7545588e485b9ad0b33517","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:34: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"]},{"id":"44d48dace7aa9311594d3f87d52ac06a12cec9f7","message":"chore(reports): record clean framework sync evidence\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/44d48dace7aa9311594d3f87d52ac06a12cec9f7","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:09:14-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":"fab6fb15be4f42a271912484ed4f5900509a5a90","message":"chore(migration): record framework sync receipt\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/fab6fb15be4f42a271912484ed4f5900509a5a90","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:08:29-07:00","added":[],"removed":[],"modified":["docs/framework-migration.md","reports/framework-migration.latest.json"]},{"id":"5f37700826cdb8c3a3095f2f3fb0120396a6effd","message":"feat(framework): sync G15-B Redis occupancy guard and governance experience\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/5f37700826cdb8c3a3095f2f3fb0120396a6effd","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:08:28-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":"bcb12c26ce765a7bb94dac6068484ad861e51207","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/bcb12c26ce765a7bb94dac6068484ad861e51207","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T01:30:11-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":"4cd3b60bb1b71bceff7545588e485b9ad0b33517","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/secret-identity/commit/4cd3b60bb1b71bceff7545588e485b9ad0b33517","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:34: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"]},"repository":{"id":101,"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":"secret-identity","full_name":"luoanwu/secret-identity","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":714,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/secret-identity/languages","html_url":"https://gitea.g-hi.com/luoanwu/secret-identity","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/secret-identity","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/secret-identity.git","clone_url":"https://gitea.g-hi.com/luoanwu/secret-identity.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:03+08:00","updated_at":"2026-09-01T21:59:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788405783
|
1788405825
|
0
|
1788405492
|
1788407496
|
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
|
|
23444
|
feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)
|
63
|
5
|
governance.yml
|
5
|
5
|
0
|
refs/heads/main
|
7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bbe7744fc0df50ca87397478731523692d59a867","after":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/bbe7744fc0df50ca87397478731523692d59a867...7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","commits":[{"id":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","message":"feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)\n\n- contracts:ALIGNMENT_LANGUAGES 11 语单源(与 sidecar SUPPORTED_LANGUAGES\n 对齐),createAlignmentRunSchema.language 收紧为 z.enum,未知语言建任务\n 即拒绝;reanchorAlignmentSentenceSchema fail-closed(字数不可变/窗内单调\n 无重叠);新增 alignment.sentence.reanchored 事件类型\n- 工作台:语言选择器从 4 项硬编码改为 contracts 派生 11 项母语标签;\n 复核卡质量旗标人话映射(cantonese_asr_domain 等 12 项)\n- 双后端:新增 POST /:id/sentences/:idx/reanchor 动作接口——邻句包络\n fail-closed(重锚只许落入空隙,不得吞并相邻句)、复核态保持\n NEEDS_REVIEW 等人工验收、同事务写 history+outbox;非法迁移统一映射\n 409 INVALID_TRANSITION\n- 前端:新增 audio-slice.ts 浏览器端切片(OfflineAudioContext 重采样\n 16k WAV),真正实现「用三句上下文重跑」——切三句音频窗口送 Qwen3、\n 只采纳中间句、按窗口偏移映射回全局时间,文本/字数不一致则拒绝采纳\n- 修复预存 bug:\u003caudio\u003e durationchange 早于 loadedmetadata 触发,把\n 播头恢复值踩回 0,导致导入/恢复音频后播头无法停在首个复核句\n- 证据:contracts 24 用例;两后端各 +1 真实 DB 验收(进空隙/吞邻句 409/\n 字数漂移 409/跨租户 404);e2e 9 用例(模型层打桩,切片+写链+DB 回读\n 全真实);棘轮收紧 testsPassed 68→71、uiTestsPassed 8→9、\n ownTestCases 76→80;三级门禁 2026-07-22 本仓实跑全绿\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:40:35-07:00","added":["apps/web/src/features/alignment/lib/audio-slice.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/EventFeed.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.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/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-validation-source.mjs"]}],"total_commits":0,"head_commit":{"id":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","message":"feat: 语言口径收紧含粤语单源 + 单句重锚(真·三句上下文重跑)\n\n- contracts:ALIGNMENT_LANGUAGES 11 语单源(与 sidecar SUPPORTED_LANGUAGES\n 对齐),createAlignmentRunSchema.language 收紧为 z.enum,未知语言建任务\n 即拒绝;reanchorAlignmentSentenceSchema fail-closed(字数不可变/窗内单调\n 无重叠);新增 alignment.sentence.reanchored 事件类型\n- 工作台:语言选择器从 4 项硬编码改为 contracts 派生 11 项母语标签;\n 复核卡质量旗标人话映射(cantonese_asr_domain 等 12 项)\n- 双后端:新增 POST /:id/sentences/:idx/reanchor 动作接口——邻句包络\n fail-closed(重锚只许落入空隙,不得吞并相邻句)、复核态保持\n NEEDS_REVIEW 等人工验收、同事务写 history+outbox;非法迁移统一映射\n 409 INVALID_TRANSITION\n- 前端:新增 audio-slice.ts 浏览器端切片(OfflineAudioContext 重采样\n 16k WAV),真正实现「用三句上下文重跑」——切三句音频窗口送 Qwen3、\n 只采纳中间句、按窗口偏移映射回全局时间,文本/字数不一致则拒绝采纳\n- 修复预存 bug:\u003caudio\u003e durationchange 早于 loadedmetadata 触发,把\n 播头恢复值踩回 0,导致导入/恢复音频后播头无法停在首个复核句\n- 证据:contracts 24 用例;两后端各 +1 真实 DB 验收(进空隙/吞邻句 409/\n 字数漂移 409/跨租户 404);e2e 9 用例(模型层打桩,切片+写链+DB 回读\n 全真实);棘轮收紧 testsPassed 68→71、uiTestsPassed 8→9、\n ownTestCases 76→80;三级门禁 2026-07-22 本仓实跑全绿\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:40:35-07:00","added":["apps/web/src/features/alignment/lib/audio-slice.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/alignment/alignment.service.ts","apps/api-fastify/src/routes/alignment-runs.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/alignment/alignment.controller.ts","apps/api-nestjs/src/alignment/alignment.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/EventFeed.tsx","apps/web/src/features/alignment/api/alignment.ts","apps/web/src/features/alignment/components/AlignmentWorkbench.tsx","packages/contracts/src/alignment.ts","packages/contracts/src/contracts.test.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/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-validation-source.mjs"]},"repository":{"id":63,"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":"forced-alignment","full_name":"luoanwu/forced-alignment","description":"纯人声与歌词精准强制对齐工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":29685,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/forced-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/forced-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/forced-alignment.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-22T08:56:49+08:00","updated_at":"2026-07-22T12:35:54+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1784706050
|
1784706127
|
0
|
1784706047
|
1784706127
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23733
|
docs(release): record verified video render recove docs(release): record verified video render recovery and deployment...
|
57
|
5
|
governance.yml
|
104
|
5
|
0
|
refs/heads/main
|
9c9e71fc1137bff234b19026269d21d862c157ed
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bb6cb94b08f86a57c2333b85d352f2d8273eda0a","after":"9c9e71fc1137bff234b19026269d21d862c157ed","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/bb6cb94b08f86a57c2333b85d352f2d8273eda0a...9c9e71fc1137bff234b19026269d21d862c157ed","commits":[{"id":"9c9e71fc1137bff234b19026269d21d862c157ed","message":"docs(release): record verified video render recovery and deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9c9e71fc1137bff234b19026269d21d862c157ed","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-08T16:36:41-07:00","added":["docs/releases/2026-09-08-video-memory1.md","reports/video-render-memory-2026-09-08/backup-verification.json","reports/video-render-memory-2026-09-08/deployed-verify.json","reports/video-render-memory-2026-09-08/deployment.json","reports/video-render-memory-2026-09-08/live-render.json","reports/video-render-memory-2026-09-08/post-deployment-smoke.json","reports/video-render-memory-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","reports/video-render-memory-2026-09-08/README.md"]}],"total_commits":0,"head_commit":{"id":"9c9e71fc1137bff234b19026269d21d862c157ed","message":"docs(release): record verified video render recovery and deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/9c9e71fc1137bff234b19026269d21d862c157ed","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-08T16:36:41-07:00","added":["docs/releases/2026-09-08-video-memory1.md","reports/video-render-memory-2026-09-08/backup-verification.json","reports/video-render-memory-2026-09-08/deployed-verify.json","reports/video-render-memory-2026-09-08/deployment.json","reports/video-render-memory-2026-09-08/live-render.json","reports/video-render-memory-2026-09-08/post-deployment-smoke.json","reports/video-render-memory-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","reports/video-render-memory-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":703699,"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-09T07:25:19+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788910606
|
1788910646
|
0
|
1788910606
|
1788910646
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23894
|
docs(platform): 当前状态 runtime / governance 行改引夹具批次证 docs(platform): 当前状态 runtime / governance 行改引夹具批次证据(runtime 449 / UI 5 @ f095625;check:fixtures 8 套件 89 例;runtime 报告 c7ceb8c)...
|
116
|
5
|
platform.yml
|
20
|
5
|
0
|
refs/heads/main
|
9e9146e447cbcc5a64edb0930ec2e0c6af74c501
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bb38f4cd0f55cd2cb76723ca12f26c19414a1817","after":"9e9146e447cbcc5a64edb0930ec2e0c6af74c501","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/bb38f4cd0f55cd2cb76723ca12f26c19414a1817...9e9146e447cbcc5a64edb0930ec2e0c6af74c501","commits":[{"id":"9e9146e447cbcc5a64edb0930ec2e0c6af74c501","message":"docs(platform): 当前状态 runtime / governance 行改引夹具批次证据(runtime 449 / UI 5 @ f095625;check:fixtures 8 套件 89 例;runtime 报告 c7ceb8c)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/9e9146e447cbcc5a64edb0930ec2e0c6af74c501","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:37:46-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"c7ceb8c9a072ff827caeab9674189c453119c9b7","message":"chore(reports): refresh clean runtime static evidence @ e47ff9d(Mx-7 后:runtime 449 / UI 5 绑定 f095625;地板 449 / 35 / 185)\n\n根 pnpm check(pins / modules / module-imports / catalog / catalog:drift / fixtures 8 套件 89 例 0 失败 / facts / migration-decs / caddy /\ngovernance 测试 / contracts check:local / runtime 静态 14 项 + lint + typecheck)与 release:manifest(partial 缺 4 项)在 e47ff9d 上通过。\n只提交 runtime/reports(provenance 以 runtime/ 为根,clean);仓根 reports/*.latest.json 因并行会话 D-2 产物(image-digest / sbom)\n尚未提交而 worktreeDirty=true,按纪律不提交、恢复为上一份 clean 绑定(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/c7ceb8c9a072ff827caeab9674189c453119c9b7","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:37:46-07:00","added":[],"removed":[],"modified":["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":"e47ff9d84db7dc62dfd8002fc378b8680ec40be6","message":"docs(runtime): record clean commit acceptance @ f095625(Mx-7 后:runtime 449 / UI 5;地板 449 / 35 / 185)\n\n- 证据新鲜度三行改绑 clean `f095625`(= 夹具批次 8a95879 之后并行会话的 D-1 / D-2 镜像提交 adce2fa / f095625,只改 Dockerfile /\n governance / stack,不改被测代码):真实 DB check:runtime 449 tests / 0 failures(+68:六模块 test/negative 失败关闭夹具单测)、\n UI 5/5、双后端差分 0 差异;共享底座 :55470 `enterprise_platform_acceptance_mx7_20260912` + :56379/7。\n- reports/baseline.json 地板收紧:testsPassed 381 → 449(ownTests 35 / ownTestCases 185 不变:模块工作区包不计)。\n- 三份验收报告 provenance.gitSha = f095625、worktreeDirty=false(runtime 根口径)。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/e47ff9d84db7dc62dfd8002fc378b8680ec40be6","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:35:19-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]}],"total_commits":0,"head_commit":{"id":"9e9146e447cbcc5a64edb0930ec2e0c6af74c501","message":"docs(platform): 当前状态 runtime / governance 行改引夹具批次证据(runtime 449 / UI 5 @ f095625;check:fixtures 8 套件 89 例;runtime 报告 c7ceb8c)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/9e9146e447cbcc5a64edb0930ec2e0c6af74c501","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:37:46-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"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":3500,"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:33:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
34
|
1789209634
|
1789209675
|
0
|
1789209470
|
1789209760
|
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
|
|
23905
|
Merge github/main (PR #10 merge commit) into main
|
116
|
5
|
platform.yml
|
31
|
5
|
0
|
refs/heads/main
|
00926be6a929f248be020289f5729004cb41a86c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ba6d11ee06cfb8ba8f710a8ca7655d1d9ea88f4e","after":"00926be6a929f248be020289f5729004cb41a86c","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/ba6d11ee06cfb8ba8f710a8ca7655d1d9ea88f4e...00926be6a929f248be020289f5729004cb41a86c","commits":[{"id":"00926be6a929f248be020289f5729004cb41a86c","message":"Merge github/main (PR #10 merge commit) into main\n\n树与本地 main 顶端相同,不改文件;把 GitHub 受保护主分支的合并提交接回本地历史。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/00926be6a929f248be020289f5729004cb41a86c","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:05:25-07:00","added":[],"removed":[],"modified":[]},{"id":"5e64485a3e521e4cde52a919ca7d48f3977625a0","message":"Merge pull request #10 from laoluojuhai/sync/main-20260912-r5\n\nsync(main): 推平本地 main → GitHub(第五轮,最后一轮:Mx-5 报告 02f16ca + 状态行 546b119 + 接线合并提交)","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/5e64485a3e521e4cde52a919ca7d48f3977625a0","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:05:17-07:00","added":[],"removed":[],"modified":["CLAUDE.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","reports/release-manifest.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":"2e691871a127a836cc06892cfc3c1902d744adb7","message":"feat(contracts): 2026-09-12 决策会——27 项 DEC 批准登记到仓内 Catalog 副本(decisions.json 32 approved / 0 pending),测试基线与 DEC-012 检查器随之转正\n\n- catalogs/decisions.json:DEC-001—009 / 011—026 / 029 / 030 status → approved(与正式 platform-contracts 同步;037—039 待 CHG-002 登记);DEC-013 Broker 改 Redpanda、008 部分生效、030 分阶段,条款见各草案文末批准记录与 doc/decisions/待裁决架构事项.md\n- test/governance-linter.test.mjs:pendingDecisions 0 / approvedDecisions 32;DEC-009/011/012 断言改为 approved;Fact 激活负例把 DEC-012 退回 pending 以保持 FACT_ACTIVATION_BLOCKED 守卫有效\n- scripts/schema-compatibility.mjs + check-schema-compatibility.mjs:DEC-012 批准后候选检查器转正式规则——接受 pending 或 approved,其他状态仍 DECISION_STATE_UNEXPECTED;summary 增 decisionStatus;baseline 保持 proposed 直到 CHG-004 激活快照;test/schema-compatibility.test.mjs 增正反向用例\n- 证据:pnpm --dir contracts check:local 100/100;正式 platform-contracts 76/76、check 仍只报 6 项 PLATFORM_PROJECT_UNREGISTERED(等 CHG-001)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/2e691871a127a836cc06892cfc3c1902d744adb7","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-12T04:21:48-07:00","added":[],"removed":[],"modified":["contracts/catalogs/decisions.json","contracts/scripts/check-schema-compatibility.mjs","contracts/scripts/schema-compatibility.mjs","contracts/test/governance-linter.test.mjs","contracts/test/schema-compatibility.test.mjs"]}],"total_commits":0,"head_commit":{"id":"00926be6a929f248be020289f5729004cb41a86c","message":"Merge github/main (PR #10 merge commit) into main\n\n树与本地 main 顶端相同,不改文件;把 GitHub 受保护主分支的合并提交接回本地历史。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/00926be6a929f248be020289f5729004cb41a86c","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:05:25-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":4416,"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-12T19:20: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
|
30
|
1789218329
|
1789218482
|
0
|
1789218328
|
1789218527
|
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
|
|
23521
|
feat(image-edit): harden masked editing acceptance
|
57
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
7a7e42422a19f6ad4c86d4cd320119a7fc912885
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ba48645a4237735976c13184c3aac435bc868949","after":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ba48645a4237735976c13184c3aac435bc868949...7a7e42422a19f6ad4c86d4cd320119a7fc912885","commits":[{"id":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","message":"feat(image-edit): harden masked editing acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7a7e42422a19f6ad4c86d4cd320119a7fc912885","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:34:04-07:00","added":["apps/api-fastify/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","apps/api-nestjs/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","scripts/lib/source-fingerprint.mjs","services/model-sidecar/test_mask_composite.py"],"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/routes/material-factory.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/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.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/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-production-acceptance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","services/model-sidecar/main.py"]}],"total_commits":0,"head_commit":{"id":"7a7e42422a19f6ad4c86d4cd320119a7fc912885","message":"feat(image-edit): harden masked editing acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7a7e42422a19f6ad4c86d4cd320119a7fc912885","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T09:34:04-07:00","added":["apps/api-fastify/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","apps/api-nestjs/prisma/migrations/20260825090000_add_render_job_edit_sources/migration.sql","scripts/lib/source-fingerprint.mjs","services/model-sidecar/test_mask_composite.py"],"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/routes/material-factory.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/test/material-inference.acceptance.test.ts","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/queries.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","apps/web/src/store/useFactoryStore.ts","packages/contracts/src/material.test.ts","packages/contracts/src/material.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/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-production-acceptance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.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":43836,"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-24T22:16: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
|
1787675667
|
1787675695
|
0
|
1787675666
|
1787675695
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23494
|
docs(governance): 修正 G14 认知——CI 不是没跑,是连红 7 次无人当真,现 docs(governance): 修正 G14 认知——CI 不是没跑,是连红 7 次无人当真,现已首次全绿...
|
74
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
15248a4a041b4e0b1716d65ce7327315a8d39176
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b673ff8c2e248dbea016f88702215123aa58fd03","after":"15248a4a041b4e0b1716d65ce7327315a8d39176","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/b673ff8c2e248dbea016f88702215123aa58fd03...15248a4a041b4e0b1716d65ce7327315a8d39176","commits":[{"id":"15248a4a041b4e0b1716d65ce7327315a8d39176","message":"docs(governance): 修正 G14 认知——CI 不是没跑,是连红 7 次无人当真,现已首次全绿\n\n此前 G14 写作「尚未在 GitHub 上跑出绿盘证据」,实测是错的:Governance workflow\n自 2026-08-14 起已运行 8 次(6 红 1 取消 1 绿),红盘一直存在、一直没人看。\n\n根因两处,均只在 CI 环境暴露(本机跑多少次绿盘都推不出来),已于 b673ff8 修复:\n- 假红:CI 着色让测试计数恒为 0,报成看似灾难性回归的「got 0」\n- flaky:篡改 JWT 约 1/64 概率篡改了个寂寞,把安全断言变成偶发假通过\n\n修复后 CI 首次全绿(Static ✓ 1m29s、Runtime and UI ✓ 5m21s)。\n\n回灌的判据:**一个永远红的门禁与一个不存在的门禁,治理价值相同——都不产生信息。**\n「假红」比「假绿」更隐蔽,因为它表面上更严格;且负向测试与空转测试都发现不了它\n(那些都在本地跑)。\n\nG14 仍 OPEN,剩余关闭条件两项:required checks / 分支保护可定位;\n用受控失败 PR 证明违规确实被阻断。\n\n同步刷新三级门禁报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/15248a4a041b4e0b1716d65ce7327315a8d39176","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:02:49-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"15248a4a041b4e0b1716d65ce7327315a8d39176","message":"docs(governance): 修正 G14 认知——CI 不是没跑,是连红 7 次无人当真,现已首次全绿\n\n此前 G14 写作「尚未在 GitHub 上跑出绿盘证据」,实测是错的:Governance workflow\n自 2026-08-14 起已运行 8 次(6 红 1 取消 1 绿),红盘一直存在、一直没人看。\n\n根因两处,均只在 CI 环境暴露(本机跑多少次绿盘都推不出来),已于 b673ff8 修复:\n- 假红:CI 着色让测试计数恒为 0,报成看似灾难性回归的「got 0」\n- flaky:篡改 JWT 约 1/64 概率篡改了个寂寞,把安全断言变成偶发假通过\n\n修复后 CI 首次全绿(Static ✓ 1m29s、Runtime and UI ✓ 5m21s)。\n\n回灌的判据:**一个永远红的门禁与一个不存在的门禁,治理价值相同——都不产生信息。**\n「假红」比「假绿」更隐蔽,因为它表面上更严格;且负向测试与空转测试都发现不了它\n(那些都在本地跑)。\n\nG14 仍 OPEN,剩余关闭条件两项:required checks / 分支保护可定位;\n用受控失败 PR 证明违规确实被阻断。\n\n同步刷新三级门禁报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/15248a4a041b4e0b1716d65ce7327315a8d39176","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:02:49-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/validation-source.latest.json"]},"repository":{"id":74,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5678,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T07:52:33+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":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
|
1787011376
|
1787011453
|
0
|
1787011374
|
1787011453
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23565
|
fix(deps): C238 juhai.hr Host 构建链回退至与 apps/web 同源版 fix(deps): C238 juhai.hr Host 构建链回退至与 apps/web 同源版本——b664b43 的版本策展只回退 apps/web,Host 留在 next16/tailwind4 令 web-production-build 红(run 33295243158)...
|
76
|
5
|
governance.yml
|
23
|
5
|
0
|
refs/heads/main
|
52493ec7434e28b4500178ec95b15522ae223ab6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b664b431a778fdbbe13f215b51e5c6a00dd3e8a3","after":"52493ec7434e28b4500178ec95b15522ae223ab6","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/b664b431a778fdbbe13f215b51e5c6a00dd3e8a3...52493ec7434e28b4500178ec95b15522ae223ab6","commits":[{"id":"52493ec7434e28b4500178ec95b15522ae223ab6","message":"fix(deps): C238 juhai.hr Host 构建链回退至与 apps/web 同源版本——b664b43 的版本策展只回退 apps/web,Host 留在 next16/tailwind4 令 web-production-build 红(run 33295243158)\n\n- products/juhai.hr/host/web:next 15.5.24 / tailwindcss ^3.4.17 / postcss 8.5.23 / autoprefixer ^10.4.20 逐字对齐 apps/web(Host 的 next.config/postcss.config/globals.css 全部 re-export apps/web 单源),本地 runner 同命令红→绿复现\n- pnpm-lock.yaml:重建 Host importer,消除 tailwind4/next16 残留与 b664b43 遗留的 postcss 清单/锁失同步\n- .github/dependabot.yml:next/tailwindcss 忽略 semver-major——共享构建链单源的 major 迁移必须显式立项\n- CLAUDE.md/经验库:C238 登记;C232 快照锚点刷新至 b664b43\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/52493ec7434e28b4500178ec95b15522ae223ab6","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-29T23:26:51-07:00","added":[],"removed":[],"modified":[".github/dependabot.yml","CLAUDE.md","docs/governance-experience.md","pnpm-lock.yaml","products/juhai.hr/host/web/package.json"]}],"total_commits":0,"head_commit":{"id":"52493ec7434e28b4500178ec95b15522ae223ab6","message":"fix(deps): C238 juhai.hr Host 构建链回退至与 apps/web 同源版本——b664b43 的版本策展只回退 apps/web,Host 留在 next16/tailwind4 令 web-production-build 红(run 33295243158)\n\n- products/juhai.hr/host/web:next 15.5.24 / tailwindcss ^3.4.17 / postcss 8.5.23 / autoprefixer ^10.4.20 逐字对齐 apps/web(Host 的 next.config/postcss.config/globals.css 全部 re-export apps/web 单源),本地 runner 同命令红→绿复现\n- pnpm-lock.yaml:重建 Host importer,消除 tailwind4/next16 残留与 b664b43 遗留的 postcss 清单/锁失同步\n- .github/dependabot.yml:next/tailwindcss 忽略 semver-major——共享构建链单源的 major 迁移必须显式立项\n- CLAUDE.md/经验库:C238 登记;C232 快照锚点刷新至 b664b43\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/52493ec7434e28b4500178ec95b15522ae223ab6","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-29T23:26:51-07:00","added":[],"removed":[],"modified":[".github/dependabot.yml","CLAUDE.md","docs/governance-experience.md","pnpm-lock.yaml","products/juhai.hr/host/web/package.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":76888,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os/languages","html_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/digital-employee-os","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/digital-employee-os.git","clone_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os.git","original_url":"","website":"","stars_count":0,"forks_count":1,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-20T14:46:28+08:00","updated_at":"2026-08-30T13:41: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
|
2
|
60
|
1788071235
|
1788072481
|
0
|
1788071233
|
1788072481
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23923
|
Merge remote-tracking branch 'origin/main' Merge remote-tracking branch 'origin/main' into codex/mainline-candidate-evidence...
|
116
|
5
|
platform.yml
|
43
|
5
|
0
|
refs/heads/main
|
b534a148353902022e83479dee84b969d7059d8c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b5b7b7a18e6bb57854be8fdf5f0660fe6c2a2279","after":"b534a148353902022e83479dee84b969d7059d8c","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/b5b7b7a18e6bb57854be8fdf5f0660fe6c2a2279...b534a148353902022e83479dee84b969d7059d8c","commits":[{"id":"b534a148353902022e83479dee84b969d7059d8c","message":"Merge remote-tracking branch 'origin/main' into codex/mainline-candidate-evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b534a148353902022e83479dee84b969d7059d8c","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-12T15:57:05-07:00","added":["docs/MS-2-3持久主线执行记录-2026-09-12.md","docs/domain/ms2-ms4-mainline-blueprint.md","docs/domain/owner-matrix.md","docs/持久主线本地验收.md","governance/check-mainline.mjs","governance/lib/provenance.d.mts","governance/prepare-mainline.mjs","governance/restore-mainline.mjs","reports/foundation-audit-current.latest.json","reports/mainline-acceptance.latest.json","reports/mainline-dev-deployment.latest.json","reports/mainline-restore.latest.json","reports/revocation-sla.latest.json","runtime/clients/fact/migrations/001_outbox_inbox.sql","runtime/clients/fact/package.json","runtime/clients/fact/src/index.ts","runtime/clients/fact/src/protocol.test.ts","runtime/clients/fact/src/protocol.ts","runtime/clients/fact/tsconfig.json","runtime/modules/audit/prisma/migrations/202609120001_audit_ledger/migration.sql","runtime/modules/audit/prisma/migrations/migration_lock.toml","runtime/modules/audit/src/persistence/audit-store.ts","runtime/modules/audit/test/negative/tamper.integration.ts","runtime/modules/audit/vitest.integration.config.ts","runtime/modules/fact/prisma/migrations/202609120001_fact_acceptance/migration.sql","runtime/modules/fact/prisma/migrations/migration_lock.toml","runtime/modules/fact/src/persistence/fact-store.ts","runtime/modules/fact/src/persistence/protocol.ts","runtime/modules/fact/src/persistence/redpanda.ts","runtime/modules/fact/test/persistence.integration.ts","runtime/modules/fact/vitest.integration.config.ts","runtime/modules/kit/src/durable-facts.ts","runtime/modules/permission/prisma/migrations/202609120001_permission_ledger/migration.sql","runtime/modules/permission/prisma/migrations/migration_lock.toml","runtime/modules/permission/src/persistence/permission-store.ts","runtime/test/chaos/redpanda-disconnect.test.ts","runtime/test/e2e/mainline-support.ts","runtime/test/e2e/revocation-sla.test.ts","runtime/test/fixtures/mainline-consumer.sql","runtime/test/fixtures/mainline-owner.sql","stack/provision/redpanda-topics.mjs"],"removed":[],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","contracts/SOURCE.md","contracts/catalogs/platform-projects.json","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/apps/api-nestjs/src/auth/auth.guard.ts","runtime/apps/api-nestjs/src/auth/token-verifier.ts","runtime/apps/api-nestjs/src/platform/http/permission-decision.adapter.ts","runtime/apps/api-nestjs/src/platform/http/permission-decision.controller.ts","runtime/apps/api-nestjs/test/platform.http.acceptance.test.ts","runtime/modules.json","runtime/modules/audit/package.json","runtime/modules/audit/prisma/schema.prisma","runtime/modules/audit/src/index.ts","runtime/modules/fact/package.json","runtime/modules/fact/prisma/schema.prisma","runtime/modules/fact/src/index.ts","runtime/modules/kit/package.json","runtime/modules/kit/src/facts.ts","runtime/modules/kit/src/index.ts","runtime/modules/permission/package.json","runtime/modules/permission/prisma/schema.prisma","runtime/modules/permission/src/index.ts","runtime/pnpm-lock.yaml","runtime/reports/agent-adapters.latest.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/validation-source.latest.json","runtime/test/chaos/fail-closed.test.ts","runtime/test/e2e/mainline.test.ts","runtime/test/package.json","runtime/test/vitest.config.ts","runtime/turbo.json","stack/README.md","stack/compose.yaml","stack/overlays/dev.yaml","stack/overlays/staging.yaml","stack/overlays/test.yaml","stack/provision/redpanda-topics.json","stack/provision/redpanda-topics.sh"]},{"id":"a4af044771ad386af7160b8788e41ea75fd5ae86","message":"Merge pull request #18 from laoluojuhai/codex/mainline-candidate-evidence\n\nfix(governance): verify durable mainline candidate evidence","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/a4af044771ad386af7160b8788e41ea75fd5ae86","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-12T15:56:21-07:00","added":["governance/lib/mainline-evidence.mjs","reports/mainline-candidate-regression.latest.json"],"removed":[],"modified":["CLAUDE.md","README.md","docs/MS-1-Registry裁决登记提案-2026-09-12.md","docs/MS-1建仓与接入执行记录-2026-09-12.md","docs/候选校验与恢复脚本修复记录-2026-09-12.md","governance/README.md","governance/prepare-package-release.mjs","governance/test/package-release.test.mjs","governance/test/verify-candidate.test.mjs","governance/verify-candidate.mjs"]},{"id":"6c20c6e5969499c364ede42aa71b4e2cc5abb6d1","message":"docs(governance): record clean mainline candidate regression\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/6c20c6e5969499c364ede42aa71b4e2cc5abb6d1","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-12T15:46:02-07:00","added":["reports/mainline-candidate-regression.latest.json"],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md"]},{"id":"5144a226817802d981ef410147b8c2492539c0ca","message":"Merge remote-tracking branch 'origin/main' into codex/mainline-candidate-evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/5144a226817802d981ef410147b8c2492539c0ca","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-12T15:45:32-07:00","added":["docs/PF-07身份核心迁移记录-2026-09-12.md","governance/test/identity-source-relocation.test.mjs","governance/test/identity-test-count.test.mjs","identity/packages/identity-domain/src","identity/packages/identity-domain/vitest.config.ts","identity/packages/oidc-core/src","identity/packages/oidc-core/vitest.config.ts","identity/packages/security/src","identity/packages/security/vitest.config.ts","identity/scripts/lib/own-tests.mjs","runtime/docs/domain/identity-blueprint.md","runtime/modules/identity/source-relocation.json","runtime/modules/identity/src/domain/idp-state-machines.test.ts","runtime/modules/identity/src/domain/idp-state-machines.ts","runtime/modules/identity/src/domain/statemachine.ts","runtime/modules/identity/src/oidc/index.test.ts","runtime/modules/identity/src/oidc/index.ts","runtime/modules/identity/src/security/index.test.ts","runtime/modules/identity/src/security/index.ts"],"removed":["identity/packages/identity-domain/src/idp-state-machines.test.ts","identity/packages/identity-domain/src/idp-state-machines.ts","identity/packages/identity-domain/src/index.ts","identity/packages/identity-domain/src/statemachine.ts","identity/packages/oidc-core/src/index.test.ts","identity/packages/oidc-core/src/index.ts","identity/packages/security/src/index.test.ts","identity/packages/security/src/index.ts"],"modified":["identity/CLAUDE.md","identity/scripts/governance-report.mjs","identity/turbo.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","runtime/CLAUDE.md","runtime/docs/domain/owner-matrix.md","runtime/modules/identity/package.json","runtime/modules/identity/src/domain/index.ts","runtime/modules/identity/src/index.ts","runtime/pnpm-lock.yaml","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":"227ab389bb1198e1029ee528f469df5a90c86e3d","message":"fix(governance): require durable mainline evidence for authority candidates\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/227ab389bb1198e1029ee528f469df5a90c86e3d","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-12T15:45:17-07:00","added":["governance/lib/mainline-evidence.mjs"],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md","governance/README.md","governance/prepare-package-release.mjs","governance/test/package-release.test.mjs","governance/test/verify-candidate.test.mjs","governance/verify-candidate.mjs"]}],"total_commits":0,"head_commit":{"id":"b534a148353902022e83479dee84b969d7059d8c","message":"Merge remote-tracking branch 'origin/main' into codex/mainline-candidate-evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b534a148353902022e83479dee84b969d7059d8c","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-12T15:57:05-07:00","added":["docs/MS-2-3持久主线执行记录-2026-09-12.md","docs/domain/ms2-ms4-mainline-blueprint.md","docs/domain/owner-matrix.md","docs/持久主线本地验收.md","governance/check-mainline.mjs","governance/lib/provenance.d.mts","governance/prepare-mainline.mjs","governance/restore-mainline.mjs","reports/foundation-audit-current.latest.json","reports/mainline-acceptance.latest.json","reports/mainline-dev-deployment.latest.json","reports/mainline-restore.latest.json","reports/revocation-sla.latest.json","runtime/clients/fact/migrations/001_outbox_inbox.sql","runtime/clients/fact/package.json","runtime/clients/fact/src/index.ts","runtime/clients/fact/src/protocol.test.ts","runtime/clients/fact/src/protocol.ts","runtime/clients/fact/tsconfig.json","runtime/modules/audit/prisma/migrations/202609120001_audit_ledger/migration.sql","runtime/modules/audit/prisma/migrations/migration_lock.toml","runtime/modules/audit/src/persistence/audit-store.ts","runtime/modules/audit/test/negative/tamper.integration.ts","runtime/modules/audit/vitest.integration.config.ts","runtime/modules/fact/prisma/migrations/202609120001_fact_acceptance/migration.sql","runtime/modules/fact/prisma/migrations/migration_lock.toml","runtime/modules/fact/src/persistence/fact-store.ts","runtime/modules/fact/src/persistence/protocol.ts","runtime/modules/fact/src/persistence/redpanda.ts","runtime/modules/fact/test/persistence.integration.ts","runtime/modules/fact/vitest.integration.config.ts","runtime/modules/kit/src/durable-facts.ts","runtime/modules/permission/prisma/migrations/202609120001_permission_ledger/migration.sql","runtime/modules/permission/prisma/migrations/migration_lock.toml","runtime/modules/permission/src/persistence/permission-store.ts","runtime/test/chaos/redpanda-disconnect.test.ts","runtime/test/e2e/mainline-support.ts","runtime/test/e2e/revocation-sla.test.ts","runtime/test/fixtures/mainline-consumer.sql","runtime/test/fixtures/mainline-owner.sql","stack/provision/redpanda-topics.mjs"],"removed":[],"modified":[".github/workflows/platform.yml","CLAUDE.md","README.md","contracts/SOURCE.md","contracts/catalogs/platform-projects.json","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/apps/api-nestjs/src/auth/auth.guard.ts","runtime/apps/api-nestjs/src/auth/token-verifier.ts","runtime/apps/api-nestjs/src/platform/http/permission-decision.adapter.ts","runtime/apps/api-nestjs/src/platform/http/permission-decision.controller.ts","runtime/apps/api-nestjs/test/platform.http.acceptance.test.ts","runtime/modules.json","runtime/modules/audit/package.json","runtime/modules/audit/prisma/schema.prisma","runtime/modules/audit/src/index.ts","runtime/modules/fact/package.json","runtime/modules/fact/prisma/schema.prisma","runtime/modules/fact/src/index.ts","runtime/modules/kit/package.json","runtime/modules/kit/src/facts.ts","runtime/modules/kit/src/index.ts","runtime/modules/permission/package.json","runtime/modules/permission/prisma/schema.prisma","runtime/modules/permission/src/index.ts","runtime/pnpm-lock.yaml","runtime/reports/agent-adapters.latest.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/validation-source.latest.json","runtime/test/chaos/fail-closed.test.ts","runtime/test/e2e/mainline.test.ts","runtime/test/package.json","runtime/test/vitest.config.ts","runtime/turbo.json","stack/README.md","stack/compose.yaml","stack/overlays/dev.yaml","stack/overlays/staging.yaml","stack/overlays/test.yaml","stack/provision/redpanda-topics.json","stack/provision/redpanda-topics.sh"]},"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":5604,"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":6,"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-13T06:55: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
|
2
|
34
|
1789253917
|
1789253978
|
0
|
1789253857
|
1789254049
|
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
|
|
23651
|
docs: 归档 2026-09-06 项目全面分析报告
|
57
|
5
|
governance.yml
|
23
|
5
|
0
|
refs/heads/main
|
0d31f4f01cdbf250d891121e9d402611861c992d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b5b17df4635fa722221afca479d61771915e3b60","after":"0d31f4f01cdbf250d891121e9d402611861c992d","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/b5b17df4635fa722221afca479d61771915e3b60...0d31f4f01cdbf250d891121e9d402611861c992d","commits":[{"id":"0d31f4f01cdbf250d891121e9d402611861c992d","message":"docs: 归档 2026-09-06 项目全面分析报告\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0d31f4f01cdbf250d891121e9d402611861c992d","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-06T08:51:26-07:00","added":["reports/project-deep-analysis-2026-09-06.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"0d31f4f01cdbf250d891121e9d402611861c992d","message":"docs: 归档 2026-09-06 项目全面分析报告\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0d31f4f01cdbf250d891121e9d402611861c992d","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-06T08:51:26-07:00","added":["reports/project-deep-analysis-2026-09-06.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":286403,"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-06T23:49: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
|
4
|
1788709976
|
1788710013
|
0
|
1788709975
|
1788710013
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23977
|
chore(reports): 在 clean HEAD 8b969bc 上重跑静态门禁并回绑
|
116
|
5
|
platform.yml
|
63
|
5
|
0
|
refs/heads/main
|
68cb0ab2c652fad74b929a1bd92b6c3b91aa1dc2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b54b34efc535e49428e3f3d8fbe3b0e6fe204503","after":"68cb0ab2c652fad74b929a1bd92b6c3b91aa1dc2","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/b54b34efc535e49428e3f3d8fbe3b0e6fe204503...68cb0ab2c652fad74b929a1bd92b6c3b91aa1dc2","commits":[{"id":"68cb0ab2c652fad74b929a1bd92b6c3b91aa1dc2","message":"chore(reports): 在 clean HEAD 8b969bc 上重跑静态门禁并回绑\n\n九份报告的 provenance 全部绑定 8b969bc、worktreeDirty=false:caddy / catalog-drift /\ncatalog-reconciliation / evidence-freshness / facts / fixtures / migration-decs /\nmodule-imports / otel。check:fixtures 17 套件 166 例 0 失败 0 不可用;catalog:drift\n仍 error 0 / drift 4(四条已知待办走 CHG-002 → 003)。\n\ncheck:evidence 由 3 条告警增至 4 条:新增的一条是\nreports/port-conformance.latest.json(绑定 dbf0fb7),作用域内变更的唯一文件是\nruntime/modules/kit/src/facts.ts —— 上一提交里那处只改了文档注释。新鲜度判定按\n作用域而非内容,分不出注释与行为,这是它该有的保守方向;该报告需要真实端口重跑才\n能回绑,本轮不伪造。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/68cb0ab2c652fad74b929a1bd92b6c3b91aa1dc2","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-15T03:06:27-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.latest.json"]},{"id":"8b969bceb52bd11d9a456b51eb635350322be2d9","message":"docs: 三处把已批准的 DEC 仍写作未决前置的陈述订正\n\n工作区一致性门禁 L10(已批准的 DEC 仍被写作未决前置)在本仓报出三处:\n\n- docs/owner-matrix.md:credential 的\"权威表等 DEC-006 / 007 / 025\"、scope 的\n \"等 DEC-001—005 / 017 / 018 / 039\"、ai-gateway 的\"路由与账本等 DEC-007\"。前述\n DEC 均已于 2026-09-12 批准,改写成\"未建(阻塞不在裁决侧)\";DEC-039 例外——它\n 至今未进机器 Catalog,仍待 CHG-002 登记,这半句保留。\n- runtime/modules/kit/src/facts.ts:顺序元数据\"待 DEC-013—016 定\"已由 DEC-016\n 裁定(Owner 单调 aggregateVersion、消费者 lastAppliedVersion + 有界 gap)。\n- contracts/candidates/facts/OrganizationUnitMoved.v1.json 的 note:组织 Owner 已由\n DEC-002 裁定(A 案:逻辑独立 Organization 域,首期宿主 HR,hosted_by 显式)。\n\nblocked_by 一个字没动。候选事实的过期阻塞位与 EmploymentTransferred 同属一类,\n改动走变更包(参照 CHG-007),不在本次范围。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8b969bceb52bd11d9a456b51eb635350322be2d9","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-15T03:05:57-07:00","added":[],"removed":[],"modified":["contracts/candidates/facts/OrganizationUnitMoved.v1.json","docs/owner-matrix.md","runtime/modules/kit/src/facts.ts"]},{"id":"171baf4983c82b9b2c1ba9cc4b3bfc7764be9a14","message":"fix(contracts): 跨清单链接规则按 DEC-009 重写 —— 门禁不该把已批准的裁决反过来写\n\nSOURCE_MANIFEST_MISMATCH 判定 productId === app.id ∧ productVersion ===\napp.version,而 DEC-009(2026-09-12 批准,A 案)写明\"三清单独立 Schema / Owner /\n版本,跨清单只存引用\"——它要求两份清单同 id 同版本,正是该裁决明令分开的东西。\n\n后果是实测出来的:12 份 AppManifest 只有 juhai.hr 碰巧满足,另三个公用应用\"补了\nsourceManifest 也过不去\",于是干脆没人补,跨清单链接整体缺位(回灌台账 U-33、\ncheck-domain-layer 的 D3 三条)。\n\n规则改为只断言 DEC-009 允许断言的那部分:引用必须解析得到一份产品清单、且不含糊。\n新增导出 resolveProductDeclaration,认单产品文件(products/\u003cid\u003e/manifest.json、\nkernel.products.entry.json)与产品列表(kernel.products.json)两种在用形状;\nSOURCE_MANIFEST_MISMATCH 由 SOURCE_MANIFEST_NOT_A_PRODUCT 与\nSOURCE_MANIFEST_AMBIGUOUS(列表里多于一个产品)取代。id 与版本的一致性不归这里\n——版本相等而内容分叉的漂移由内容摘要对账承接(GAP-10;D7 / D10)。\n\n连带修掉一条此前永远报不出来的规则:SOURCE_MANIFEST_NOT_FOUND 在文件不存在时本该\n报,实际是下一行的 readJson 先抛原始 ENOENT、门禁在收齐 issues 之前就崩。写这条的\n负向用例时它没红,才发现。check() 改为返回存在性并据此短路。规则写了、触发条件让它\n对真实输入永不成立,与 D11 判的那类假绿同源。\n\n三份 AppManifest 各补一条 app.sourceManifest(字段本就在 Schema 里,非 Schema 变更)。\n\n核验:contracts 测试 270 → 278;scripts/check.mjs exit 0;check-domain-layer --only D3\n由 3 条降为 0;根链 check:modules / check:module-imports / check:catalog / check:facts /\ncheck:caddy / check:otel 全绿,governance 测试 215/215。负向实做两次:sourceManifest\n指向 contracts/package.json 触发 NOT_A_PRODUCT,指向不存在的路径触发 NOT_FOUND。\n\n未做:镜像 平台治理/platform-contracts 的同名 linter 未同步——它是 C5 待退役的旧副本,\n两份早已分叉。三个仓的 app.version 仍是占位的 0.1.0,DEC-009 下不再影响判定。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/171baf4983c82b9b2c1ba9cc4b3bfc7764be9a14","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-15T03:05:49-07:00","added":[],"removed":[],"modified":["contracts/SOURCE.md","contracts/apps/execution-control.draft.json","contracts/apps/juhai.devicecloud.draft.json","contracts/apps/juhai.knowledgecloud.draft.json","contracts/scripts/governance-linter.mjs","contracts/test/governance-linter.test.mjs"]},{"id":"5a8ea1ffa427806d2d16ee01b8accab08b50e1fc","message":"chore(reports): 摘除跳过豁免后在 clean HEAD 8a891fc 上重跑回绑\n\ncheck:evidence 13 份已登记报告全部新鲜。余下三条 EVIDENCE_STALE 是 runtime/UI\n与主线验收报告,需真实 DB/Redis 重跑,不在静态链范围。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/5a8ea1ffa427806d2d16ee01b8accab08b50e1fc","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-14T23:58:24-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json"]},{"id":"8a891fc7c617ef141a0d750b91161e2500c8e5b4","message":"fix(governance): 摘掉 dec-039 的跳过豁免,并禁止根链再出现 allow-unavailable\n\n治理机制自身的失效模式-2026-09-14 模式一判据 3。dec-039 套件的路径此前是迁移双\n替换产物,套件报 unavailable,而根链挂着 --allow-unavailable-suite\ndec-039-party-model,于是那 25 例正反向夹具**从来没有真正跑过**,门禁一直显示\n通过。永远红至少还刺眼,永远绿是彻底的静音。\n\n路径已在 1ecac14 修好、夹具实跑 25/25,本轮把豁免开关摘掉:check:fixtures 17 套件\n166 例,不可用 0,status=passed。\n\n护栏守根因不守当时的输出:任何 package.json 脚本再出现 --allow-unavailable 即红;\n另断言最近一次 fixtures 报告的不可用套件为 0、豁免名单为空。确有套件暂时跑不了时,\n应让门禁失败并具名登记原因,而不是让它静音。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8a891fc7c617ef141a0d750b91161e2500c8e5b4","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-14T23:58:03-07:00","added":["governance/test/no-silent-skip.test.mjs"],"removed":[],"modified":["package.json"]}],"total_commits":0,"head_commit":{"id":"68cb0ab2c652fad74b929a1bd92b6c3b91aa1dc2","message":"chore(reports): 在 clean HEAD 8b969bc 上重跑静态门禁并回绑\n\n九份报告的 provenance 全部绑定 8b969bc、worktreeDirty=false:caddy / catalog-drift /\ncatalog-reconciliation / evidence-freshness / facts / fixtures / migration-decs /\nmodule-imports / otel。check:fixtures 17 套件 166 例 0 失败 0 不可用;catalog:drift\n仍 error 0 / drift 4(四条已知待办走 CHG-002 → 003)。\n\ncheck:evidence 由 3 条告警增至 4 条:新增的一条是\nreports/port-conformance.latest.json(绑定 dbf0fb7),作用域内变更的唯一文件是\nruntime/modules/kit/src/facts.ts —— 上一提交里那处只改了文档注释。新鲜度判定按\n作用域而非内容,分不出注释与行为,这是它该有的保守方向;该报告需要真实端口重跑才\n能回绑,本轮不伪造。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/68cb0ab2c652fad74b929a1bd92b6c3b91aa1dc2","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-15T03:06:27-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/evidence-freshness.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/otel.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":13782,"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":42,"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-15T13:47: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
|
1789468031
|
1789468069
|
0
|
1789468031
|
1789468140
|
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
|
|
23924
|
chore(reports): refresh clean static and port evid chore(reports): refresh clean static and port evidence...
|
116
|
5
|
platform.yml
|
44
|
5
|
0
|
refs/heads/main
|
1bca170569a9a1100818ead6f119c928c090ac1c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b534a148353902022e83479dee84b969d7059d8c","after":"1bca170569a9a1100818ead6f119c928c090ac1c","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/b534a148353902022e83479dee84b969d7059d8c...1bca170569a9a1100818ead6f119c928c090ac1c","commits":[{"id":"1bca170569a9a1100818ead6f119c928c090ac1c","message":"chore(reports): refresh clean static and port evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1bca170569a9a1100818ead6f119c928c090ac1c","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-12T16:31:29-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","reports/port-conformance.latest.json","reports/release-manifest.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":"01330409ee121a92552f37659df40db096b50920","message":"docs(reports): record clean 546-test mainline and restore evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/01330409ee121a92552f37659df40db096b50920","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-12T16:30:05-07:00","added":["reports/stack-image-pins.latest.json"],"removed":[],"modified":["docs/MS-2-3持久主线执行记录-2026-09-12.md","reports/mainline-acceptance.latest.json","reports/mainline-restore.latest.json","reports/release-manifest.latest.json","reports/revocation-sla.latest.json","runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]},{"id":"deff31fb124f5b18b08cc4a862b5b49b22edea4b","message":"fix(ci): generate authority clients before database-free unit tests\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/deff31fb124f5b18b08cc4a862b5b49b22edea4b","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-12T16:28:38-07:00","added":[],"removed":[],"modified":[".github/workflows/platform.yml"]},{"id":"7e279c58557fe7e4771a4f1452d6627511af85f3","message":"Merge validated permission and promotion hardening into mainline runtime\n\n# Conflicts:\n#\tgovernance/check-mainline.mjs\n#\tgovernance/lib/mainline-evidence.mjs\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/7e279c58557fe7e4771a4f1452d6627511af85f3","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-12T16:20:33-07:00","added":["docs/完整实现对抗验收-2026-09-12.md"],"removed":[],"modified":["README.md","docs/MS-2-3持久主线执行记录-2026-09-12.md","docs/staging晋级操作说明.md","docs/持久主线本地验收.md","governance/check-mainline.mjs","governance/check-promotion.mjs","governance/lib/mainline-evidence.mjs","governance/restore-mainline.mjs","governance/test/promotion.test.mjs","runtime/clients/permission/README.md","runtime/clients/permission/src/index.test.ts","runtime/clients/permission/src/index.ts","runtime/reports/baseline.json","runtime/test/chaos/redpanda-disconnect.test.ts","runtime/test/e2e/revocation-sla.test.ts"]},{"id":"5284567d20e4977fd0b8bfe4e8b244545b6146cf","message":"feat(fact): connect candidate JWT intake and durable background relay\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/5284567d20e4977fd0b8bfe4e8b244545b6146cf","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-12T16:19:22-07:00","added":["contracts/candidates/contracts/fact-intake-api.v1.openapi.json","runtime/apps/api-nestjs/src/platform/http/fact-intake.controller.ts","runtime/modules/fact/src/persistence/runtime.test.ts","runtime/modules/fact/src/persistence/runtime.ts","runtime/modules/kit/src/fact-runtime.ts","runtime/test/e2e/fact-http.test.ts"],"removed":[],"modified":["contracts/candidates/README.md","docs/MS-2-3持久主线执行记录-2026-09-12.md","governance/check-mainline.mjs","governance/lib/mainline-evidence.mjs","runtime/apps/api-nestjs/src/platform/platform-http.module.ts","runtime/clients/fact/src/index.ts","runtime/modules/fact/src/index.ts","runtime/modules/fact/src/persistence/fact-store.ts","runtime/modules/kit/src/index.ts","runtime/turbo.json","stack/compose.yaml"]}],"total_commits":0,"head_commit":{"id":"1bca170569a9a1100818ead6f119c928c090ac1c","message":"chore(reports): refresh clean static and port evidence\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1bca170569a9a1100818ead6f119c928c090ac1c","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-12T16:31:29-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","reports/port-conformance.latest.json","reports/release-manifest.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":5829,"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":7,"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-13T07:21:48+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
30
|
1789255926
|
1789255963
|
0
|
1789255925
|
1789255988
|
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
|
|
23811
|
chore(reports): refresh clean static evidence @ b4 chore(reports): refresh clean static evidence @ b48ecd2...
|
54
|
5
|
governance.yml
|
27
|
5
|
0
|
refs/heads/main
|
c41f1f57a34aa672910f188c2b2f09eef2ab1bda
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b4e9d5a3b65afe4e08327bae6da99029b2faeffd","after":"c41f1f57a34aa672910f188c2b2f09eef2ab1bda","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/b4e9d5a3b65afe4e08327bae6da99029b2faeffd...c41f1f57a34aa672910f188c2b2f09eef2ab1bda","commits":[{"id":"c41f1f57a34aa672910f188c2b2f09eef2ab1bda","message":"chore(reports): refresh clean static evidence @ b48ecd2\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/c41f1f57a34aa672910f188c2b2f09eef2ab1bda","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:04:03-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":"b48ecd2dcdf223d7ad8f61dc0639beca51356c19","message":"docs: record clean commit acceptance @ 3e061f2(runtime 225 / 差分 9×2 零差异 / UI 10;地板 testsPassed 213→225、ownTestCases 210→222、ownTests 29→31)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/b48ecd2dcdf223d7ad8f61dc0639beca51356c19","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:03:41-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"]},{"id":"3e061f2335a08a218ca6ba090978450ed11ed865","message":"feat(seams): 平台接缝第一批——请求上下文 + fail-closed 平台端口 + 契约包可依赖形态(G28 关闭,登记 G29)\n\n- contracts 内核新增 request-context.ts(I9-A 六字段、受限 x-request-id、W3C traceparent、APP_ID 生产必填)\n 与 platform-ports.ts(权限/审计/事实出口/服务凭据端口 + createFailClosedPlatformPorts;权限永拒不抛,其余未配置即抛)\n- 两后端 AsyncLocalStorage 接线:x-request-id 回显 / x-trace-id / 鉴权后 enrich / pino mixin 六字段;\n Fastify genReqId 单源于 contracts,NestJS 由 create-app 装配中间件\n- 矩阵 +HTTP-REQUEST-CONTEXT-001/002(matrixVersion 3)、差分 +DIFF-REQUEST-CONTEXT-001(其余 checkpoint 抹平 headers)\n- check:fork-readiness F11:契约包 version = 框架版本、files=[\"dist\"]、kernel/sample 子路径、sideEffects:false(负向 exit 1)\n- package.json 0.4.0;@repo/contracts 0.0.0→0.4.0;新增 pnpm framework:pack(dist-artifacts/*.tgz,gitignore)\n- contracts 99/99、typecheck/lint/静态 pnpm check 全绿;ownTestCases 210→222、ownTests 29→31(地板随 runtime 结果收紧)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/3e061f2335a08a218ca6ba090978450ed11ed865","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:00:14-07:00","added":["apps/api-fastify/src/lib/request-context.ts","apps/api-fastify/src/plugins/request-context.ts","apps/api-nestjs/src/common/request-context.ts","packages/contracts/src/platform-ports.test.ts","packages/contracts/src/platform-ports.ts","packages/contracts/src/request-context.test.ts","packages/contracts/src/request-context.ts"],"removed":[],"modified":[".gitignore","CHANGELOG.md","CLAUDE.md","README.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/plugins/auth.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/auth/auth.guard.ts","apps/api-nestjs/src/common/logger.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/test/conformance.differential.ts","apps/api-nestjs/test/http.acceptance.test.ts","conformance.matrix.json","docs/governance-experience.md","package.json","packages/contracts/package.json","packages/contracts/src/kernel.ts","scripts/check-fork-readiness.mjs"]},{"id":"e3c44104a4bbc5e5535f23e09be2fbd2690ed692","message":"docs(governance): 发布快照按 2026-09-09 晚 ls-remote 更新——两远端已到 b4e9d5a(v0.2.0),v0.3.0 三提交未推送\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/e3c44104a4bbc5e5535f23e09be2fbd2690ed692","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-09T18:33:19-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"c555c089423fe8549c03a32fd8843f90dfb0fde1","message":"chore(reports): refresh clean static evidence @ 927100a\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/c555c089423fe8549c03a32fd8843f90dfb0fde1","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-09T18:32:17-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":"c41f1f57a34aa672910f188c2b2f09eef2ab1bda","message":"chore(reports): refresh clean static evidence @ b48ecd2\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/c41f1f57a34aa672910f188c2b2f09eef2ab1bda","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:04:03-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"]},"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":3261,"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-10T09:20:13+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1789006372
|
1789006462
|
0
|
1789006371
|
1789006495
|
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
|
|
23550
|
fix(ci): resolve base images via mainland registry fix(ci): resolve base images via mainland registry mirrors...
|
91
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
284009be92a0f6d8f79682120be0421fa0d80387
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b3c5c984414aa860f22c4e16c497d4e25515c067","after":"284009be92a0f6d8f79682120be0421fa0d80387","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/b3c5c984414aa860f22c4e16c497d4e25515c067...284009be92a0f6d8f79682120be0421fa0d80387","commits":[{"id":"284009be92a0f6d8f79682120be0421fa0d80387","message":"fix(ci): resolve base images via mainland registry mirrors\n\nCI run #7 实锤:runner 宿主直连 Docker Hub 被拒(pull access denied)。\nProvision 步骤加镜像解析链:本地已有镜像(任一命名)直接复用 →\ndaocloud/1ms 镜像站(本机已探活)→ hub 兜底;首拉成功后常驻宿主,\n后续 run 零外网依赖。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/284009be92a0f6d8f79682120be0421fa0d80387","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-29T19:11:02-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"284009be92a0f6d8f79682120be0421fa0d80387","message":"fix(ci): resolve base images via mainland registry mirrors\n\nCI run #7 实锤:runner 宿主直连 Docker Hub 被拒(pull access denied)。\nProvision 步骤加镜像解析链:本地已有镜像(任一命名)直接复用 →\ndaocloud/1ms 镜像站(本机已探活)→ hub 兜底;首拉成功后常驻宿主,\n后续 run 零外网依赖。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/284009be92a0f6d8f79682120be0421fa0d80387","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-29T19:11:02-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":2999,"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-30T10:03:50+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
|
1788056210
|
1788056398
|
0
|
1788056209
|
1788056398
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23636
|
chore(dev): derive local DB credentials from deplo chore(dev): derive local DB credentials from deploy/vm/.env in launch.json...
|
57
|
5
|
governance.yml
|
11
|
5
|
0
|
refs/heads/main
|
a228915e1a104c81591ac55a929061b082e8d7e6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b3a5c0dc690884729878b7f4cce1adbad046be14","after":"a228915e1a104c81591ac55a929061b082e8d7e6","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/b3a5c0dc690884729878b7f4cce1adbad046be14...a228915e1a104c81591ac55a929061b082e8d7e6","commits":[{"id":"a228915e1a104c81591ac55a929061b082e8d7e6","message":"chore(dev): derive local DB credentials from deploy/vm/.env in launch.json\n\nThe api-fastify launch config hard-coded app:app@127.0.0.1:55434, but that port\nis now served by the deploy/vm Compose stack whose password lives in\ndeploy/vm/.env, so the dev API crashed with P1000 at startup. Derive\nDATABASE_URL/REDIS_URL/MODEL_SIDECAR_URL from that file (fallbacks unchanged),\nrun the web dev server with an empty basePath like check:ui does, and lock the\nproxy target to 127.0.0.1.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a228915e1a104c81591ac55a929061b082e8d7e6","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-04T08:32:53-07:00","added":[],"removed":[],"modified":[".claude/launch.json"]},{"id":"cee456d14fb8a0a9491a439c02ff8e1b43f92a0b","message":"feat(identity): consume enterprise IdP access tokens on formal material routes\n\n- Add @hi-atelier/enterprise-identity (jose): RS256 verification against a\n tenant-level issuer allowlist with fixed JWKS, audience/expiry/claim checks,\n material.* scope requirement, tenant derived from the signed tenant_id, and\n HUMAN actor id/permissions bound to sub/scope.\n- NestJS material-runtime guard and Fastify runtime-trust preHandler both run\n the shared-secret check and then the IdP verification; misconfiguration stays\n 503, forged identities return 401/403; acceptance bypass still needs the run id.\n- Config: MATERIAL_IDP_AUDIENCE + MATERIAL_IDP_TRUSTED_ISSUERS_JSON in\n deploy/vm/.env.example, docker-compose and turbo globalEnv.\n- Docs: ADR-0011, material-production blueprint, owner matrix, deploy runbook,\n CLAUDE.md G8 status; production-security and UI acceptance scripts updated.\n- Regenerated governance reports. Heavy acceptance reports still carry the\n pre-hljTest-merge source fingerprint (sha256:8d6f5dab...), so check:governance\n reports heavyGateDocDrift=6 until runtime/ui/inference/production/public-file\n acceptance are rerun on the merged tree.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cee456d14fb8a0a9491a439c02ff8e1b43f92a0b","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-04T08:32:53-07:00","added":["docs/adr/0011-consume-enterprise-idp-access-tokens.md","packages/enterprise-identity/package.json","packages/enterprise-identity/src/index.test.ts","packages/enterprise-identity/src/index.ts","packages/enterprise-identity/tsconfig.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/src/modules/tenant.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/src/common/tenant.decorator.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/adr/README.md","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","docs/domain/owner-matrix.md","packages/contracts/src/storyboard.ts","pnpm-lock.yaml","reports/adversarial-acceptance-audit.latest.md","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/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/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-production-security.mjs","scripts/check-ui-acceptance.mjs","turbo.json"]},{"id":"b8a9672a43a850e5c96ca3808cdc1a5b8446b098","message":"merge: origin/hljTest into main\n\nhljTest and main had each merged the same branches independently (criss-cross,\nmerge bases c16f03b + dc10d63), so git reported conflicts in FactoryShell.tsx and\n21 generated reports/* evidence files. Resolution: keep main's tree (main's later\nintegration b3a5c0d already carried everything on hljTest except one commit) and\napply hljTest's only new commit acf98e3: build @hi-atelier/public-file declarations\nin the deploy image and drop composite/incremental tsc output.\n\nNot taken from hljTest's merge resolution: hiding the 歌词 nav item, and deleting\noutput/hi-atelier-posters-4k, reports/login-redesign.*, .playwright-cli/* and\nreports/full-transformation-completion-audit.latest.md (still referenced by CLAUDE.md).\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b8a9672a43a850e5c96ca3808cdc1a5b8446b098","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-04T08:15:27-07:00","added":[],"removed":[],"modified":["deploy/vm/Dockerfile","packages/public-file/package.json","packages/public-file/tsconfig.json"]},{"id":"acf98e305c9119899658833425da4ec0e240eb81","message":"fix(deploy): build public file declarations in containers\n\nCo-authored-by: Qwen-Coder \u003cqwen-coder@alibabacloud.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/acf98e305c9119899658833425da4ec0e240eb81","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-09-01T12:37:46+08:00","added":[],"removed":[],"modified":["deploy/vm/Dockerfile","packages/public-file/package.json","packages/public-file/tsconfig.json"]},{"id":"4f9e26991be55cebd9581ee270d986def4c2eb17","message":"Merge remote-tracking branch 'origin/main' into hljTest\n\n# Conflicts:\n#\tapps/web/src/components/material-factory/FactoryShell.tsx\n#\tdeploy/vm/sidecar.Dockerfile\n#\tmodels/material-factory/manifest.json\n#\treports/adversarial-acceptance-audit.latest.md\n#\treports/baseline.json\n#\treports/contract-consumers.latest.json\n#\treports/governance-docs.latest.json\n#\treports/governance.latest.json\n#\treports/inference-acceptance.latest.json\n#\treports/material-models.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/runtime-acceptance.latest.json\n#\treports/runtime-governance.latest.json\n#\treports/schema-sync.latest.json\n#\treports/startup-acceptance.latest.json\n#\treports/storyboard-director-guard.latest.json\n#\treports/ui-acceptance.desktop.png\n#\treports/ui-acceptance.latest.json\n#\treports/ui-acceptance.mobile.png\n#\treports/ui-acceptance.production.png\n#\treports/validation-source.latest.json\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4f9e26991be55cebd9581ee270d986def4c2eb17","author":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"committer":{"name":"huangliujian","email":"hlj@g-hi.com","username":"huangliujian"},"verification":null,"timestamp":"2026-09-01T11:13:05+08:00","added":["docs/product/creative-workflow-analysis.md","packages/public-file/README.md","packages/public-file/package.json","packages/public-file/src/index.test.ts","packages/public-file/src/index.ts","packages/public-file/src/infrastructure.integration.test.ts","packages/public-file/src/ref.test.ts","packages/public-file/src/ref.ts","packages/public-file/tsconfig.json","reports/adversarial-acceptance-audit.latest.md","reports/creative-workflow-audit/01-entry.png","reports/creative-workflow-audit/02-workspace-empty.png","reports/creative-workflow-audit/03-script-start.png","reports/creative-workflow-audit/README.md","reports/full-ux-audit-2026-08-28/01-entry-desktop.png","reports/full-ux-audit-2026-08-28/02-brand-empty-desktop.png","reports/full-ux-audit-2026-08-28/03-image-create-desktop.png","reports/full-ux-audit-2026-08-28/04-storyboard-desktop.png","reports/full-ux-audit-2026-08-28/05-production-tasks-desktop.png","reports/full-ux-audit-2026-08-28/06-production-tasks-mobile.png","reports/full-ux-audit-2026-08-28/07-image-create-mobile.png","reports/full-ux-audit-2026-08-28/08-script-mobile.png","reports/full-ux-audit-2026-08-28/README.md","reports/material-review-concurrency-guard.latest.json","reports/module-boundary.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/storyboard-director-guard.latest.json","reports/ui-acceptance.production.png","scripts/check-public-file-acceptance.mjs","scripts/check-public-file-integration.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/package.json","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/test/object-storage.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/test/object-storage.integration.test.ts","apps/web/src/app/globals.css","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/FactoryShell.tsx","apps/web/src/components/material-factory/PipelineFlow.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/ui.tsx","apps/web/src/store/useFactoryStore.ts","deploy/vm/.env.example","deploy/vm/Caddyfile","deploy/vm/docker-compose.yml","deploy/vm/sidecar.Dockerfile","docs/domain/material-production-blueprint.md","docs/domain/owner-matrix.md","models/material-factory/manifest.json","models/material-factory/paddleocr/PP-LCNet_x1_0_doc_ori_infer/README.md","package.json","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-models.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/startup-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","scripts/governance-report.mjs","services/model-sidecar/main.py","turbo.json"]}],"total_commits":0,"head_commit":{"id":"a228915e1a104c81591ac55a929061b082e8d7e6","message":"chore(dev): derive local DB credentials from deploy/vm/.env in launch.json\n\nThe api-fastify launch config hard-coded app:app@127.0.0.1:55434, but that port\nis now served by the deploy/vm Compose stack whose password lives in\ndeploy/vm/.env, so the dev API crashed with P1000 at startup. Derive\nDATABASE_URL/REDIS_URL/MODEL_SIDECAR_URL from that file (fallbacks unchanged),\nrun the web dev server with an empty basePath like check:ui does, and lock the\nproxy target to 127.0.0.1.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a228915e1a104c81591ac55a929061b082e8d7e6","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-04T08:32:53-07:00","added":[],"removed":[],"modified":[".claude/launch.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":49341,"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-01T12:38:11+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788535983
|
1788536927
|
0
|
1788535982
|
1788536927
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23496
|
fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bo fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bound...
|
74
|
5
|
governance.yml
|
10
|
5
|
0
|
refs/heads/main
|
c6049fee7c14933da0e4ff1e6a534eb44cfe1a03
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b33f650552dbc4adad6df5ee670b6d9eba8eb125","after":"c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/b33f650552dbc4adad6df5ee670b6d9eba8eb125...c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","commits":[{"id":"c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","message":"fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bound\n\nb33f650 的提交信息与 CLAUDE.md 都写「三份报告均 worktreeDirty=false」,实测不成立:\n当时 17 份静态报告是 dirty=true,只有 runtime / UI 两份是 false。\n\n根因是执行顺序错了:先改 CLAUDE.md、再跑 pnpm check——那一刻工作区已因文档改动而脏,\n静态报告的 dirty 位被如实记成 true,而提交信息照抄了改动前的说法。\n\n本次在工作区 clean 状态下重跑静态门禁,现状态:\n- 静态 17 份:gitSha=b33f650 + worktreeDirty=false\n- runtime / UI 2 份:gitSha=5acf362 + worktreeDirty=false\n两个 SHA 是刻意如此:5acf362→b33f650 的差异只有 CLAUDE.md 一个文件\n(git diff --name-only 实测),不含任何 apps/ packages/ scripts/ 改动,\n因此 runtime / UI 证据仍绑定当前代码。\n\n已把这条教训写进 CLAUDE.md:报告的 dirty 位由**跑它那一刻的工作区**决定,\n不由你想宣称什么决定;正确顺序是代码与文档先提交干净,再跑门禁,再提交报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:36:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","message":"fix(governance): 更正上一提交的证据绑定声明——静态那一级当时并非 clean-bound\n\nb33f650 的提交信息与 CLAUDE.md 都写「三份报告均 worktreeDirty=false」,实测不成立:\n当时 17 份静态报告是 dirty=true,只有 runtime / UI 两份是 false。\n\n根因是执行顺序错了:先改 CLAUDE.md、再跑 pnpm check——那一刻工作区已因文档改动而脏,\n静态报告的 dirty 位被如实记成 true,而提交信息照抄了改动前的说法。\n\n本次在工作区 clean 状态下重跑静态门禁,现状态:\n- 静态 17 份:gitSha=b33f650 + worktreeDirty=false\n- runtime / UI 2 份:gitSha=5acf362 + worktreeDirty=false\n两个 SHA 是刻意如此:5acf362→b33f650 的差异只有 CLAUDE.md 一个文件\n(git diff --name-only 实测),不含任何 apps/ packages/ scripts/ 改动,\n因此 runtime / UI 证据仍绑定当前代码。\n\n已把这条教训写进 CLAUDE.md:报告的 dirty 位由**跑它那一刻的工作区**决定,\n不由你想宣称什么决定;正确顺序是代码与文档先提交干净,再跑门禁,再提交报告。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/c6049fee7c14933da0e4ff1e6a534eb44cfe1a03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T17:36:54-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/hallucination-guard.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/outbox-lease.latest.json","reports/owner-matrix.latest.json","reports/partner-truth.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/security-boundary.latest.json","reports/tailwind-tokens.latest.json","reports/validation-source.latest.json"]},"repository":{"id":74,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5802,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T08:35:26+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
|
1787013756
|
1787014203
|
0
|
1787013419
|
1787014204
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23830
|
test: verify the illustration no-text switch round
|
57
|
5
|
governance.yml
|
192
|
5
|
0
|
refs/heads/main
|
c7722c64bacefaaa48698f2b0899e7fd3ea6cd72
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b299092e8c0fd00a06b43fab98b00cb635fe59ba","after":"c7722c64bacefaaa48698f2b0899e7fd3ea6cd72","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/b299092e8c0fd00a06b43fab98b00cb635fe59ba...c7722c64bacefaaa48698f2b0899e7fd3ea6cd72","commits":[{"id":"c7722c64bacefaaa48698f2b0899e7fd3ea6cd72","message":"test: verify the illustration no-text switch round\n\nSeven gates plus the static check passed on an isolated stack for\nfingerprint 79dbb130… (main b299092e + no-text switch, dialog keep\naction, factual-vs-generated check, single save banner); CLAUDE.md\nheavy-gate rows, reports 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/c7722c64bacefaaa48698f2b0899e7fd3ea6cd72","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-10T04:37:47-07:00","added":["docs/governance/log/2026-09-10-illustration-no-text-toggle.md"],"removed":[],"modified":["CLAUDE.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.check-report-desktop.png","reports/content-detail.description-candidates-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.images-factual-dialog-desktop.png","reports/content-detail.output-mobile.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/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/template-making.1440.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.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/ui-acceptance.production.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":"f2bd649e14928b899a6654809166fdf5ae23a3ea","message":"fix(content): a failed save shows one banner, not the same message twice\n\npersist() sets the save banner and rethrows; the action mutation's\nonError then repeated the message as a notice. Errors the save banner\nalready surfaced are skipped by the notice.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f2bd649e14928b899a6654809166fdf5ae23a3ea","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-10T04:29:30-07:00","added":[],"removed":[],"modified":["apps/web/src/components/material-factory/ContentStudio.tsx"]},{"id":"7748c83a304ca237e982b476e7d255cd88dda45f","message":"feat(content): switch for text-free illustrations, plus two review dead ends\n\n- noTextOnImages document switch (on for new documents): a hard no-text\n rule in the image prompt and in PLAN / IMAGE_BRIEF / IMAGE_DESCRIPTIONS\n / CHECK tasks; toggle in the shared visual block and the image steps.\n- The confirm-generation dialog offers 已复核,沿用此配图方案 when the\n text changed, and editing the description there counts as reviewing.\n- A factual slot pointing at a generated image is a deterministic issue\n (the save API rejected it with no field marked); ticking 事实画面 drops a\n generated selection and the asset list hides generated images.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/7748c83a304ca237e982b476e7d255cd88dda45f","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-10T04:20:34-07:00","added":[],"removed":[],"modified":["apps/web/e2e/specs/content-studio.spec.ts","apps/web/src/components/material-factory/ContentStudio.tsx","packages/contracts/src/content.test.ts","packages/contracts/src/content.ts","scripts/lib/content-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"c7722c64bacefaaa48698f2b0899e7fd3ea6cd72","message":"test: verify the illustration no-text switch round\n\nSeven gates plus the static check passed on an isolated stack for\nfingerprint 79dbb130… (main b299092e + no-text switch, dialog keep\naction, factual-vs-generated check, single save banner); CLAUDE.md\nheavy-gate rows, reports 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/c7722c64bacefaaa48698f2b0899e7fd3ea6cd72","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-10T04:37:47-07:00","added":["docs/governance/log/2026-09-10-illustration-no-text-toggle.md"],"removed":[],"modified":["CLAUDE.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.check-report-desktop.png","reports/content-detail.description-candidates-desktop.png","reports/content-detail.images-desktop.png","reports/content-detail.images-factual-dialog-desktop.png","reports/content-detail.output-mobile.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/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/template-making.1440.png","reports/template-preview.templates.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-saved-master.SCENE.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/ui-acceptance.production.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":843200,"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":9,"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-10T18:57:04+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
|
1789040282
|
1789040323
|
0
|
1789040282
|
1789040323
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23627
|
chore(reports): refresh clean static evidence
|
112
|
5
|
governance.yml
|
2
|
5
|
0
|
refs/heads/main
|
911ad375c3c2d7acb2cfc44a7edcc351406b6633
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b1fba12bb50265a049edcdefc547f92df9126793","after":"911ad375c3c2d7acb2cfc44a7edcc351406b6633","compare_url":"https://gitea.g-hi.com/luoanwu/observability-platform/compare/b1fba12bb50265a049edcdefc547f92df9126793...911ad375c3c2d7acb2cfc44a7edcc351406b6633","commits":[{"id":"911ad375c3c2d7acb2cfc44a7edcc351406b6633","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/911ad375c3c2d7acb2cfc44a7edcc351406b6633","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:35:46-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":"0c7f54713914b737ca3eb472573b9e8f4b171acc","message":"chore(reports): record clean framework sync evidence\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/0c7f54713914b737ca3eb472573b9e8f4b171acc","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:17:07-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":"e487b501e1cd28b8074286ae4a37ae4aa4dd1da9","message":"chore(migration): record framework sync receipt\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/e487b501e1cd28b8074286ae4a37ae4aa4dd1da9","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:16:21-07:00","added":[],"removed":[],"modified":["docs/framework-migration.md","reports/framework-migration.latest.json"]},{"id":"5ab2ce983c0015fcf9b213df6e4eab8dba65890b","message":"feat(framework): sync G15-B Redis occupancy guard and governance experience\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/5ab2ce983c0015fcf9b213df6e4eab8dba65890b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:16:21-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":"d720abd63d13f49d29eba718d39d64d25629382b","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/d720abd63d13f49d29eba718d39d64d25629382b","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T01:31: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":"911ad375c3c2d7acb2cfc44a7edcc351406b6633","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/observability-platform/commit/911ad375c3c2d7acb2cfc44a7edcc351406b6633","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-02T17:35:46-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":112,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"observability-platform","full_name":"luoanwu/observability-platform","description":"","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":717,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/observability-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/observability-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/observability-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/observability-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-01T21:58:25+08:00","updated_at":"2026-09-01T21:59:49+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
10
|
1788407365
|
1788407395
|
0
|
1788405509
|
1788407570
|
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
|
|
23890
|
Merge pull request #3 from laoluojuhai/codex/ms1-e Merge pull request #3 from laoluojuhai/codex/ms1-evidence-closure...
|
116
|
5
|
platform.yml
|
16
|
5
|
0
|
refs/heads/main
|
23f6e71c1971bd243b703ddcf0ce7c4d40974a83
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b19500919a1a2e568e5a41932eec0a37eeb94747","after":"23f6e71c1971bd243b703ddcf0ce7c4d40974a83","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/b19500919a1a2e568e5a41932eec0a37eeb94747...23f6e71c1971bd243b703ddcf0ce7c4d40974a83","commits":[{"id":"23f6e71c1971bd243b703ddcf0ce7c4d40974a83","message":"Merge pull request #3 from laoluojuhai/codex/ms1-evidence-closure\n\nfix(ms1): isolate shared development Redis and record consumer integration","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/23f6e71c1971bd243b703ddcf0ce7c4d40974a83","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:15:53-07:00","added":["docs/MS-1-Registry裁决登记提案-2026-09-12.md","identity/docs/platform-shared-dev.md","identity/packages/contracts/src/realtime-database.test.ts","identity/scripts/with-platform-dev.mjs","reports/ms1-release-candidate.2026-09-12.json","reports/ms1-shared-candidate.2026-09-12.json","stack/reports/consumer-backup.2026-09-12.json","stack/reports/consumer-health.2026-09-12.json","stack/reports/consumer-redis.2026-09-12.json","stack/reports/consumer-restore.2026-09-12.json","stack/reports/container-retirement.2026-09-12.json","stack/reports/development-cutover.2026-09-12.json","stack/reports/realtime-isolation.2026-09-12.json"],"removed":[],"modified":["CLAUDE.md","docs/MS-1发布与接入操作说明.md","docs/MS-1建仓与接入执行记录-2026-09-12.md","identity/.gitignore","identity/apps/api-fastify/src/plugins/events.ts","identity/apps/api-fastify/src/types.ts","identity/apps/api-fastify/test/realtime.tenant.test.ts","identity/apps/api-nestjs/src/events/event-bus.service.ts","identity/apps/api-nestjs/src/events/outbox-dispatcher.service.ts","identity/apps/api-nestjs/test/outbox.concurrency.test.ts","identity/apps/api-nestjs/test/outbox.deadletter.test.ts","identity/packages/contracts/src/realtime.ts","reports/ms1-integration.2026-09-12.json","reports/ms1-validation.2026-09-12.json","runtime/test/chaos/postgres-disconnect.test.ts","stack/README.md","stack/overlays/dev.yaml","stack/provision/redis-dbs.json"]},{"id":"4730ae3646cdf3c55a1bb72610af68b4430cc90c","message":"docs(ms1): verify development store cutover and preserve all source volumes\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/4730ae3646cdf3c55a1bb72610af68b4430cc90c","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:06:52-07:00","added":["docs/MS-1-Registry裁决登记提案-2026-09-12.md","reports/ms1-shared-candidate.2026-09-12.json","stack/reports/consumer-backup.2026-09-12.json","stack/reports/consumer-health.2026-09-12.json","stack/reports/consumer-redis.2026-09-12.json","stack/reports/consumer-restore.2026-09-12.json","stack/reports/development-cutover.2026-09-12.json","stack/reports/realtime-isolation.2026-09-12.json"],"removed":[],"modified":["CLAUDE.md","docs/MS-1建仓与接入执行记录-2026-09-12.md","reports/ms1-integration.2026-09-12.json","stack/README.md"]},{"id":"acbf9744ddb1b7881b00cb7d2f167e090cec3896","message":"Merge commit 'b19500919a1a2e568e5a41932eec0a37eeb94747' into codex/ms1-evidence-closure\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/acbf9744ddb1b7881b00cb7d2f167e090cec3896","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:59:58-07:00","added":["docs/治理夹具完整性收口-2026-09-12.md","governance/test/fixture-integrity.test.mjs","reports/governance-fixtures.2026-09-12.json"],"removed":[],"modified":["CLAUDE.md","README.md","governance/README.md","governance/check-fixtures.mjs","governance/lib/json-schema.mjs","governance/templates/consumer-governance.yml","governance/test/json-schema.test.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","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":"35c117078fe601bd3cc9d9db91302cdf1ae1d792","message":"fix(ms1): preserve separate OS developer Redis databases and repair fixtures\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/35c117078fe601bd3cc9d9db91302cdf1ae1d792","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:38:51-07:00","added":[],"removed":[],"modified":["identity/apps/api-nestjs/test/outbox.concurrency.test.ts","identity/apps/api-nestjs/test/outbox.deadletter.test.ts","identity/packages/contracts/src/realtime-database.test.ts","identity/scripts/with-platform-dev.mjs","stack/provision/redis-dbs.json"]},{"id":"1db8bacd0a7c18f8f7614f7862b43077a78bc443","message":"fix(platform): isolate development Redis channels and persist shared state\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/1db8bacd0a7c18f8f7614f7862b43077a78bc443","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:26:36-07:00","added":["identity/docs/platform-shared-dev.md","identity/packages/contracts/src/realtime-database.test.ts","identity/scripts/with-platform-dev.mjs"],"removed":[],"modified":["identity/.gitignore","identity/apps/api-fastify/src/plugins/events.ts","identity/apps/api-fastify/src/types.ts","identity/apps/api-fastify/test/realtime.tenant.test.ts","identity/apps/api-nestjs/src/events/event-bus.service.ts","identity/apps/api-nestjs/src/events/outbox-dispatcher.service.ts","identity/packages/contracts/src/realtime.ts","runtime/test/chaos/postgres-disconnect.test.ts","stack/overlays/dev.yaml"]}],"total_commits":0,"head_commit":{"id":"23f6e71c1971bd243b703ddcf0ce7c4d40974a83","message":"Merge pull request #3 from laoluojuhai/codex/ms1-evidence-closure\n\nfix(ms1): isolate shared development Redis and record consumer integration","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/23f6e71c1971bd243b703ddcf0ce7c4d40974a83","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:15:53-07:00","added":["docs/MS-1-Registry裁决登记提案-2026-09-12.md","identity/docs/platform-shared-dev.md","identity/packages/contracts/src/realtime-database.test.ts","identity/scripts/with-platform-dev.mjs","reports/ms1-release-candidate.2026-09-12.json","reports/ms1-shared-candidate.2026-09-12.json","stack/reports/consumer-backup.2026-09-12.json","stack/reports/consumer-health.2026-09-12.json","stack/reports/consumer-redis.2026-09-12.json","stack/reports/consumer-restore.2026-09-12.json","stack/reports/container-retirement.2026-09-12.json","stack/reports/development-cutover.2026-09-12.json","stack/reports/realtime-isolation.2026-09-12.json"],"removed":[],"modified":["CLAUDE.md","docs/MS-1发布与接入操作说明.md","docs/MS-1建仓与接入执行记录-2026-09-12.md","identity/.gitignore","identity/apps/api-fastify/src/plugins/events.ts","identity/apps/api-fastify/src/types.ts","identity/apps/api-fastify/test/realtime.tenant.test.ts","identity/apps/api-nestjs/src/events/event-bus.service.ts","identity/apps/api-nestjs/src/events/outbox-dispatcher.service.ts","identity/apps/api-nestjs/test/outbox.concurrency.test.ts","identity/apps/api-nestjs/test/outbox.deadletter.test.ts","identity/packages/contracts/src/realtime.ts","reports/ms1-integration.2026-09-12.json","reports/ms1-validation.2026-09-12.json","runtime/test/chaos/postgres-disconnect.test.ts","stack/README.md","stack/overlays/dev.yaml","stack/provision/redis-dbs.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":3392,"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:06: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
|
26
|
1789208163
|
1789208198
|
0
|
1789208163
|
1789208221
|
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
|
|
23606
|
chore(reports): refresh clean static evidence @ 28 chore(reports): refresh clean static evidence @ 286eb95(14 项门禁 + kernel profile)...
|
54
|
5
|
governance.yml
|
23
|
5
|
0
|
refs/heads/main
|
7135258b78d5b623099713b2bd3292af46b6329d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b1695a6780efbc95449a553d313599695c0b22ab","after":"7135258b78d5b623099713b2bd3292af46b6329d","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/b1695a6780efbc95449a553d313599695c0b22ab...7135258b78d5b623099713b2bd3292af46b6329d","commits":[{"id":"7135258b78d5b623099713b2bd3292af46b6329d","message":"chore(reports): refresh clean static evidence @ 286eb95(14 项门禁 + kernel profile)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/7135258b78d5b623099713b2bd3292af46b6329d","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-02T18:59:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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-profile-kernel.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":"286eb956f5ee3634246ef80235af45a628635af9","message":"chore(reports): 刷新三级证据至 1245400(clean;runtime 207 / UI 9 / 差分 8×2 零差异)+ 地板 testsPassed 203→207、uiTestsPassed 8→9\n\n动态区 runtime/UI 行回灌到 clean @ 1245400;own-test-cases 203。同日 aeed741 顶层 runtime 红 5 例\n已由 C22 修复并在 1245400 重跑转绿。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/286eb956f5ee3634246ef80235af45a628635af9","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-02T18:59:08-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/baseline.json","reports/conformance-differential.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"]},{"id":"1245400747afade64c6cda83d362021e0b9d69c2","message":"fix(realtime): Redis pub/sub 连接 ready 后才交付——修复非 0 逻辑库上订阅约 50% 建不起来(C22)\n\naeed741 的 clean-SHA 顶层 check:runtime 红 5 例(NestJS realtime.command/subscription\n`waitUntil timed out`),单独复跑 3 轮中 2 轮仍红,不是并行噪声。`DEBUG=ioredis:*` 抓到:\nSUB 连接裸建(lazyConnect:false)后立即被 EventBusService.onModuleInit `subscribe()`,\nioredis 立刻置订阅模式并把 subscribe 排进离线队列,握手期 `SELECT 9` / `INFO` 就绪检查被\n客户端以 \"Connection in subscriber mode\" 拒绝 → 判致命错误重连 → 订阅在窗口内从未建立。\n只有 REDIS_URL 带非 0 db 才发 SELECT,CI(db0)从不复现,本机验收切到 db9 后开始「偶发」。\nFastify plugins/redis.ts 同一形态(窗口更窄)。\n\n- 两后端 pub/sub 改 lazyConnect + 显式 await connect()(NestJS 异步 useFactory / Fastify\n Promise.all),ready 后才交付;启动期 Redis 不可达即拒绝启动;挂 error 监听进结构化日志\n- connectionName = api-\u003cbackend\u003e-realtime-\u003crole\u003e-\u003cpid\u003e,CLIENT LIST 可按角色定位\n- 两后端 http.acceptance 各 +1:CLIENT LIST 断言逻辑库 = REDIS_URL 且 SUB sub=1、status ready\n- 证据:修复后 realtime.command 定向 10/10 绿、0 条 ioredis 未处理错误;负向改回旧写法\n readiness 用例 5 轮中 2 轮红(expected 'reconnecting' to be 'ready')\n- G18 复跑判责纪律补:偶发红必须至少抓一次协议级失败现场\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/1245400747afade64c6cda83d362021e0b9d69c2","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-02T18:55:51-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/plugins/redis.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/governance-experience.md","reports/agent-adapters.latest.json","reports/baseline.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":"aeed74154025d55fe8e9f481d473c153de92dd63","message":"feat(users): 唯一键冲突映射为稳定 409 DUPLICATE_EMAIL + G21 多代理适配器同源门禁\n\nC21:`@@unique([tenantId,email])` 的 Prisma P2002 此前在 NestJS/Fastify 都没有映射,\n重复邮箱直接 500(修复前两后端新用例均 `expected 500 to be 409` 实锤);NestJS users 404\n还回显资源 id 与框架元数据,与 orders/Fastify 不同体。\n- contracts 新增 `USER_ERROR_CODES.DUPLICATE_EMAIL`(单源)\n- 两后端幂等窄捕获只认 P2002 → 409 `{ message, code }`;Fastify 伪造 P2025 裸 Error 改为\n 类型化 UserNotFoundError/DuplicateUserEmailError;NestJS users 404 改稳定体\n- 两后端 http.acceptance 各 +1 用例(POST/PATCH 409、outbox 无副作用、他租户同 email 201)\n- conformance 矩阵 +HTTP-CONFLICT-001(8→9)、差分 +DIFF-USER-CONFLICT-001(7→8,0 differences)\n- UI +1 用例:重复邮箱在真实页面显示稳定错误、列表不出现第二条\n\nG21:新增 `pnpm check:agent-adapters`(接入 pnpm check / Kernel profile / 棘轮 / 规则\nGOV-AGENT-ADAPTER-001,registryVersion 3→4):.claude/.agents 同名技能在 doctrine 名与\n画像路径替换之外逐字节比对,单侧技能须登记理由;补齐 business-module-intake Codex 侧副本,\n技能内对不存在技能的硬引用改为「有则调用、无则手工等价」。负向三条(改一行/删单侧/多文件)均红。\n\n基线收紧:ownTestCases 198→201、conformanceMatrixCases 8→9、新增 agentAdapter* 两项。\nruntime/UI 地板待 clean SHA 实跑后回灌。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/aeed74154025d55fe8e9f481d473c153de92dd63","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-02T18:22:32-07:00","added":[".agents/skills/business-module-intake/SKILL.md","reports/agent-adapters.latest.json","scripts/check-agent-adapters.mjs"],"removed":[],"modified":[".claude/skills/business-module-intake/SKILL.md","CLAUDE.md","README.md","apps/api-fastify/src/modules/users/users.service.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/users/users.service.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/components/UsersPanel.tsx","conformance.matrix.json","docs/governance-experience.md","docs/standards/api-standard.md","governance.rules.json","package.json","packages/contracts/src/user.ts","reports/baseline.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/os-product-compat.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/validation-source.latest.json","scripts/check-governance-profile.mjs","scripts/governance-report.mjs"]},{"id":"269497f441cafaa4501126c4632b5f02ca513233","message":"chore(reports): refresh clean static evidence\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/269497f441cafaa4501126c4632b5f02ca513233","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-02T09:59:04-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":"7135258b78d5b623099713b2bd3292af46b6329d","message":"chore(reports): refresh clean static evidence @ 286eb95(14 项门禁 + kernel profile)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/7135258b78d5b623099713b2bd3292af46b6329d","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-02T18:59:16-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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-profile-kernel.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":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":2706,"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-01T08:52: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
|
10
|
1788401213
|
1788401267
|
0
|
1788401211
|
1788401278
|
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
|
|
23443
|
fix(governance): preserve porcelain status columns
|
64
|
5
|
governance.yml
|
8
|
5
|
0
|
refs/heads/main
|
f78049d487372e5538b1d202b65aa252031c8887
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b0381bdeb68a35d172581d6736b9059720e3ad1b","after":"f78049d487372e5538b1d202b65aa252031c8887","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/b0381bdeb68a35d172581d6736b9059720e3ad1b...f78049d487372e5538b1d202b65aa252031c8887","commits":[{"id":"f78049d487372e5538b1d202b65aa252031c8887","message":"fix(governance): preserve porcelain status columns\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/f78049d487372e5538b1d202b65aa252031c8887","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:39:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"f78049d487372e5538b1d202b65aa252031c8887","message":"fix(governance): preserve porcelain status columns\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/f78049d487372e5538b1d202b65aa252031c8887","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:39:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/lib/report-provenance.mjs"]},"repository":{"id":64,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":962,"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:34: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
|
2
|
8
|
1784706014
|
1784706107
|
0
|
1784706012
|
1784706107
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23665
|
feat(video): bind adopted previs camera and blocki feat(video): bind adopted previs camera and blocking to shot generation...
|
57
|
5
|
governance.yml
|
36
|
5
|
0
|
refs/heads/main
|
51de95b1fd93350c324ca05added3e7eb1902cd7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"afc4a75296aba48f34523bc5b33712afaaeeaad5","after":"51de95b1fd93350c324ca05added3e7eb1902cd7","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/afc4a75296aba48f34523bc5b33712afaaeeaad5...51de95b1fd93350c324ca05added3e7eb1902cd7","commits":[{"id":"51de95b1fd93350c324ca05added3e7eb1902cd7","message":"feat(video): bind adopted previs camera and blocking to shot generation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/51de95b1fd93350c324ca05added3e7eb1902cd7","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-06T23:47:14-07:00","added":["docs/governance/log/2026-09-07-shijie-video-binding.md","packages/contracts/src/shijie-video-binding.ts","packages/shijie-runtime/src/video-binding.test.ts","packages/shijie-runtime/src/video-binding.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/seedance-video.integration.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/seedance-video.integration.test.ts","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/video-shot-progress.ts","packages/contracts/src/material.ts","packages/contracts/src/shijie.ts","packages/shijie-domain/src/domain.test.ts","packages/shijie-domain/src/index.ts","packages/shijie-runtime/src/index.ts","reports/admin-desktop.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/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","scripts/video-shot-progress.test.mjs"]}],"total_commits":0,"head_commit":{"id":"51de95b1fd93350c324ca05added3e7eb1902cd7","message":"feat(video): bind adopted previs camera and blocking to shot generation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/51de95b1fd93350c324ca05added3e7eb1902cd7","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-06T23:47:14-07:00","added":["docs/governance/log/2026-09-07-shijie-video-binding.md","packages/contracts/src/shijie-video-binding.ts","packages/shijie-runtime/src/video-binding.test.ts","packages/shijie-runtime/src/video-binding.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/test/seedance-video.integration.test.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/test/seedance-video.integration.test.ts","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/video-shot-progress.ts","packages/contracts/src/material.ts","packages/contracts/src/shijie.ts","packages/shijie-domain/src/domain.test.ts","packages/shijie-domain/src/index.ts","packages/shijie-runtime/src/index.ts","reports/admin-desktop.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/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/inference-acceptance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","reports/production-acceptance.latest.json","reports/production-security.latest.json","reports/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/script-generation-queue.png","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","scripts/video-shot-progress.test.mjs"]},"repository":{"id":57,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"image-generation","full_name":"luoanwu/image-generation","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":292049,"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-07T14:10:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788763665
|
1788763704
|
0
|
1788763663
|
1788763704
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23745
|
merge: retain latest timeline3a release records al merge: retain latest timeline3a release records alongside full branch integration...
|
57
|
5
|
governance.yml
|
116
|
5
|
0
|
refs/heads/main
|
2344e0beefffd98e156c51bc725bf38ece6045a8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"afb2d3d5a938a2e9601d4b63f62b3f5f70bfe3c0","after":"2344e0beefffd98e156c51bc725bf38ece6045a8","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/afb2d3d5a938a2e9601d4b63f62b3f5f70bfe3c0...2344e0beefffd98e156c51bc725bf38ece6045a8","commits":[{"id":"2344e0beefffd98e156c51bc725bf38ece6045a8","message":"merge: retain latest timeline3a release records alongside full branch integration\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2344e0beefffd98e156c51bc725bf38ece6045a8","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:13:32-07:00","added":["docs/releases/2026-09-08-timeline3a.md","reports/video-timeline-media-2026-09-08/hotfix/backup-verification.json","reports/video-timeline-media-2026-09-08/hotfix/deployed-verify.json","reports/video-timeline-media-2026-09-08/hotfix/live-browser-verification.json","reports/video-timeline-media-2026-09-08/hotfix/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-video-timeline-media.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-timeline-media-2026-09-08/hotfix/validation.json"]},{"id":"1331c4b1946b5fa298d6b1dec03a08451d65b5d2","message":"merge: include latest media queue fix and finalize all-branch acceptance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1331c4b1946b5fa298d6b1dec03a08451d65b5d2","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:12:21-07:00","added":["docs/releases/2026-09-08-timeline3.md","reports/video-timeline-media-2026-09-08/hotfix/post-production-api.json","reports/video-timeline-media-2026-09-08/hotfix/specialty-results.json","reports/video-timeline-media-2026-09-08/hotfix/subtitle-api.json","reports/video-timeline-media-2026-09-08/hotfix/validation.json","reports/video-timeline-media-2026-09-08/timeline3-rollback.json"],"removed":[],"modified":["CLAUDE.md","docs/domain/owner-matrix.md","docs/governance/log/2026-09-08-all-branches-integration.md","docs/governance/log/2026-09-08-video-timeline-media.md","docs/product/pro-video-platform-progress.md","packages/contracts/src/material-access.test.ts","packages/video-edit/src/media-overview.test.ts","packages/video-edit/src/media-overview.ts","reports/admin-desktop.png","reports/admin-mobile.png","reports/all-branches-integration-2026-09-08/branch-ancestry-precommit.json","reports/all-branches-integration-2026-09-08/current-service-verify.json","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/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","reports/video-timeline-media-2026-09-08/README.md","reports/video-timeline-media-2026-09-08/validation.json","scripts/check-video-edit-acceptance.cjs"]},{"id":"b2c796b851e665a6b29eb0c7052f8c6dadaf0038","message":"merge: combine governed workflows with current media editing and verify all gates\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/b2c796b851e665a6b29eb0c7052f8c6dadaf0038","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:05:51-07:00","added":["apps/web/src/components/material-factory/video-edit/TimelineMedia.tsx","docs/governance/log/2026-09-08-video-timeline-media.md","docs/releases/2026-09-08-timeline2.md","packages/contracts/src/video-edit-media.test.ts","packages/contracts/src/video-edit-media.ts","packages/video-edit/src/media-overview.test.ts","packages/video-edit/src/media-overview.ts","reports/all-branches-integration-2026-09-08/branch-ancestry-precommit.json","reports/video-timeline-editing-2026-09-08/README.md","reports/video-timeline-editing-2026-09-08/backup-verification.json","reports/video-timeline-editing-2026-09-08/browser-verification.json","reports/video-timeline-editing-2026-09-08/deployed-verify.json","reports/video-timeline-editing-2026-09-08/live-browser-verification.json","reports/video-timeline-editing-2026-09-08/post-deployment-smoke.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","reports/video-timeline-media-2026-09-08/README.md","reports/video-timeline-media-2026-09-08/browser-verification.json","reports/video-timeline-media-2026-09-08/post-production-api.json","reports/video-timeline-media-2026-09-08/specialty-results.json","reports/video-timeline-media-2026-09-08/subtitle-api.json","reports/video-timeline-media-2026-09-08/validation.json"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/video-edit.ts","apps/api-nestjs/src/video-edit/video-edit.controller.ts","apps/web/next.config.ts","apps/web/src/components/material-factory/MasterCanvas.tsx","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","apps/web/src/lib/api.ts","docs/domain/owner-matrix.md","docs/governance/log/2026-09-08-all-branches-integration.md","docs/governance/log/2026-09-08-video-timeline-editing.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","packages/contracts/src/index.ts","packages/contracts/src/material-access.test.ts","packages/video-edit/src/index.ts","reports/admin-desktop.png","reports/all-branches-integration-2026-09-08/current-service-verify.json","reports/all-branches-integration-2026-09-08/deployment-preflight.json","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/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.mobile.png","reports/ui-acceptance.production.png","reports/ux-edit.desktop.png","reports/ux-home.desktop.png","reports/ux-intake.desktop.png","reports/validation-source.latest.json","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png","scripts/check-ui-acceptance.mjs","scripts/check-video-edit-acceptance.cjs","scripts/check-video-post-production.cjs","scripts/lib/template-types-ui-acceptance.mjs"]},{"id":"2f928e6b794ba967193e71e102ab0687fdc21c15","message":"merge: integrate hljTest governed media workflows with current main safeguards\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2f928e6b794ba967193e71e102ab0687fdc21c15","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:51:45-07:00","added":["apps/api-fastify/prisma/migrations/20260909010000_integrate_governed_media_workflows/migration.sql","apps/api-fastify/src/modules/material-production/batch-archive-dispatcher.ts","apps/api-fastify/src/modules/material-production/delivery-rendition-dispatcher.ts","apps/api-fastify/test/brand-kit-assets.integration.test.ts","apps/api-fastify/test/brand-logo-batch-blocked.integration.test.ts","apps/api-fastify/test/brand-logo-batch-live.integration.test.ts","apps/api-fastify/test/brand-logo-batch.integration.test.ts","apps/api-fastify/test/delivery-rendition.integration.test.ts","apps/api-fastify/test/image-edit-lineage.integration.test.ts","apps/api-fastify/test/material-asset-deletion.integration.test.ts","apps/api-fastify/test/material-asset-history.integration.test.ts","apps/api-fastify/test/material-instance-export.integration.test.ts","apps/api-fastify/test/material-production-batch-archive.integration.test.ts","apps/api-fastify/test/material-production-batch.http.acceptance.test.ts","apps/api-fastify/test/material-production-batch.integration.test.ts","apps/api-fastify/test/material-template.integration.test.ts","apps/api-fastify/test/reference-image-generation-live.integration.test.ts","apps/api-fastify/test/reference-image-generation.integration.test.ts","apps/api-fastify/test/storyboard-ai-draft-blocked.integration.test.ts","apps/api-fastify/test/storyboard-composition-promotion.integration.test.ts","apps/api-fastify/test/storyboard-keyframe-blocked.integration.test.ts","apps/api-fastify/test/storyboard-keyframe-success.integration.test.ts","apps/api-fastify/test/storyboard-keyframe.http.acceptance.test.ts","apps/api-fastify/test/storyboard-keyframe.integration.test.ts","apps/api-fastify/test/storyboard-reference-input.integration.test.ts","apps/api-fastify/test/storyboard-shot-compliance.integration.test.ts","apps/api-fastify/test/storyboard-video-batch.integration.test.ts","apps/api-fastify/test/storyboard-video-composition-media.integration.test.ts","apps/api-fastify/test/storyboard-video-composition.integration.test.ts","apps/api-fastify/test/storyboard-video-progress.integration.test.ts","apps/api-nestjs/prisma/migrations/20260909010000_integrate_governed_media_workflows/migration.sql","apps/api-nestjs/src/material-factory/brand-logo-batch-dispatcher.service.ts","apps/api-nestjs/src/material-factory/storyboard-keyframe-dispatcher.service.ts","apps/api-nestjs/src/material-factory/storyboard-video-batch-dispatcher.service.ts","apps/api-nestjs/src/material-factory/storyboard-video-composition-dispatcher.service.ts","apps/api-nestjs/src/material-production/batch-archive-dispatcher.service.ts","apps/api-nestjs/src/material-production/delivery-rendition-dispatcher.service.ts","apps/api-nestjs/test/brand-kit-assets.integration.test.ts","apps/api-nestjs/test/brand-logo-batch-blocked.integration.test.ts","apps/api-nestjs/test/brand-logo-batch-live.integration.test.ts","apps/api-nestjs/test/brand-logo-batch.integration.test.ts","apps/api-nestjs/test/delivery-rendition.integration.test.ts","apps/api-nestjs/test/image-edit-lineage.integration.test.ts","apps/api-nestjs/test/material-asset-deletion.integration.test.ts","apps/api-nestjs/test/material-asset-history.integration.test.ts","apps/api-nestjs/test/material-instance-export.integration.test.ts","apps/api-nestjs/test/material-production-batch-archive.integration.test.ts","apps/api-nestjs/test/material-production-batch.http.acceptance.test.ts","apps/api-nestjs/test/material-production-batch.integration.test.ts","apps/api-nestjs/test/material-template.integration.test.ts","apps/api-nestjs/test/reference-image-generation-live.integration.test.ts","apps/api-nestjs/test/reference-image-generation.integration.test.ts","apps/api-nestjs/test/storyboard-ai-draft-blocked.integration.test.ts","apps/api-nestjs/test/storyboard-composition-promotion.integration.test.ts","apps/api-nestjs/test/storyboard-keyframe-blocked.integration.test.ts","apps/api-nestjs/test/storyboard-keyframe-success.integration.test.ts","apps/api-nestjs/test/storyboard-keyframe.http.acceptance.test.ts","apps/api-nestjs/test/storyboard-keyframe.integration.test.ts","apps/api-nestjs/test/storyboard-reference-input.integration.test.ts","apps/api-nestjs/test/storyboard-shot-compliance.integration.test.ts","apps/api-nestjs/test/storyboard-video-batch.integration.test.ts","apps/api-nestjs/test/storyboard-video-composition-media.integration.test.ts","apps/api-nestjs/test/storyboard-video-composition.integration.test.ts","apps/api-nestjs/test/storyboard-video-progress.integration.test.ts","apps/web/src/components/material-factory/BrandLogoBatchPanel.tsx","apps/web/src/components/material-factory/ProductionBatchPanel.tsx","apps/web/src/components/material-factory/ProductionWorkflowExtras.tsx","apps/web/src/components/material-factory/StoryboardWorkflowPanel.tsx","apps/web/src/components/material-factory/usePromoteDraft.ts","docs/governance/log/2026-09-08-all-branches-integration.md","docs/视频和图片流程优化清单.md","packages/contracts/src/storyboard-ai-draft.test.ts","packages/production-archive/package.json","packages/production-archive/src/index.test.ts","packages/production-archive/src/index.ts","packages/production-archive/tsconfig.json","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/060a89f2","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/203d21eb","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/d737ca98","packages/public-file/node-compile-cache/v22.23.1-x64-9de703df-0/e6c21f44","reports/all-branches-integration-2026-09-08/branch-decisions.json","reports/all-branches-integration-2026-09-08/current-service-verify.json","reports/all-branches-integration-2026-09-08/deployment-preflight.json"],"removed":[],"modified":[".gitattributes","CLAUDE.md","apps/api-fastify/package.json","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-production/material-production.service.ts","apps/api-fastify/src/modules/material-production/object-storage.service.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/object-storage.integration.test.ts","apps/api-fastify/test/production-action-guard.integration.test.ts","apps/api-fastify/test/template-image-types.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/creative-project/creative-worker.module.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.module.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-production/material-production.controller.ts","apps/api-nestjs/src/material-production/material-production.module.ts","apps/api-nestjs/src/material-production/material-production.service.ts","apps/api-nestjs/src/material-production/object-storage.service.ts","apps/api-nestjs/src/material-production/render-worker.service.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/api-nestjs/test/material-production-modes.integration.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/object-storage.integration.test.ts","apps/api-nestjs/test/production-action-guard.integration.test.ts","apps/api-nestjs/test/template-image-types.integration.test.ts","apps/web/next.config.ts","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/DirectorReviewWorkbench.tsx","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/InpaintStudio.tsx","apps/web/src/components/material-factory/InstanceGallery.tsx","apps/web/src/components/material-factory/MasterCanvas.tsx","apps/web/src/components/material-factory/NewTemplateButton.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/QualityEvidencePanel.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/VideoStudio.tsx","apps/web/src/components/material-factory/bootstrap.ts","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/queries.ts","apps/web/src/components/material-factory/template-size-variant.ts","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/Dockerfile","deploy/vm/release_test.py","docs/domain/owner-matrix.md","packages/contracts/src/material-access.test.ts","packages/contracts/src/material-access.ts","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.test.ts","packages/contracts/src/production.ts","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/storyboard-video.test.ts","packages/contracts/src/storyboard.test.ts","packages/contracts/src/storyboard.ts","packages/public-file/src/index.test.ts","packages/public-file/src/index.ts","pnpm-lock.yaml","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","scripts/check-inference-acceptance.mjs","scripts/check-production-acceptance.mjs","scripts/check-public-file-acceptance.mjs","scripts/check-public-file-integration.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/vitest-skips.mjs","scripts/migration-history.json","services/model-sidecar/main.py"]},{"id":"85139103f8888f43354648f417578a866e3e3938","message":"merge: integrate atomic timeline editing and keyboard shortcuts\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/85139103f8888f43354648f417578a866e3e3938","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:13:09-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":"2344e0beefffd98e156c51bc725bf38ece6045a8","message":"merge: retain latest timeline3a release records alongside full branch integration\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2344e0beefffd98e156c51bc725bf38ece6045a8","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:13:32-07:00","added":["docs/releases/2026-09-08-timeline3a.md","reports/video-timeline-media-2026-09-08/hotfix/backup-verification.json","reports/video-timeline-media-2026-09-08/hotfix/deployed-verify.json","reports/video-timeline-media-2026-09-08/hotfix/live-browser-verification.json","reports/video-timeline-media-2026-09-08/hotfix/post-deployment-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-08-video-timeline-media.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/module-boundary.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/toolchain.latest.json","reports/validation-source.latest.json","reports/video-timeline-media-2026-09-08/hotfix/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":724847,"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:12: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
|
1788916575
|
1788916615
|
0
|
1788916574
|
1788916615
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23464
|
Document quotation module blueprint and refresh go Document quotation module blueprint and refresh governance reports...
|
72
|
5
|
governance.yml
|
3
|
5
|
0
|
refs/heads/main
|
bd4b413c9f284e33472f905c047eb4bbb99b2717
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"aef43abd7ee47a8b0e3b245bafbbd4025dd15e34","after":"bd4b413c9f284e33472f905c047eb4bbb99b2717","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/aef43abd7ee47a8b0e3b245bafbbd4025dd15e34...bd4b413c9f284e33472f905c047eb4bbb99b2717","commits":[{"id":"bd4b413c9f284e33472f905c047eb4bbb99b2717","message":"Document quotation module blueprint and refresh governance reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/bd4b413c9f284e33472f905c047eb4bbb99b2717","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T13:04:36-07:00","added":[],"removed":[],"modified":["docs/domain/quotation-blueprint.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"bd4b413c9f284e33472f905c047eb4bbb99b2717","message":"Document quotation module blueprint and refresh governance reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/bd4b413c9f284e33472f905c047eb4bbb99b2717","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T13:04:36-07:00","added":[],"removed":[],"modified":["docs/domain/quotation-blueprint.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},"repository":{"id":72,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhai-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":601,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-07-31T03:58:25+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
8
|
1785442596
|
1785442654
|
0
|
1785441882
|
1785442654
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23801
|
docs: record the cost-creative1 release and verifi docs: record the cost-creative1 release and verification boundary...
|
57
|
5
|
governance.yml
|
171
|
5
|
0
|
refs/heads/main
|
512495bfbdfe273b64932d586e99426d42c1bc42
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"aebdbb01335820f411351274120577f5ac279bfa","after":"512495bfbdfe273b64932d586e99426d42c1bc42","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/aebdbb01335820f411351274120577f5ac279bfa...512495bfbdfe273b64932d586e99426d42c1bc42","commits":[{"id":"512495bfbdfe273b64932d586e99426d42c1bc42","message":"docs: record the cost-creative1 release and verification boundary\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/512495bfbdfe273b64932d586e99426d42c1bc42","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-09T16:19:54-07:00","added":["docs/releases/2026-09-09-cost-creative1.md"],"removed":[],"modified":["CLAUDE.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":"512495bfbdfe273b64932d586e99426d42c1bc42","message":"docs: record the cost-creative1 release and verification boundary\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/512495bfbdfe273b64932d586e99426d42c1bc42","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-09T16:19:54-07:00","added":["docs/releases/2026-09-09-cost-creative1.md"],"removed":[],"modified":["CLAUDE.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":826000,"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-10T07:07:38+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
4
|
1788996010
|
1788996052
|
0
|
1788996009
|
1788996052
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23852
|
docs(releases): record verified script entity upgr docs(releases): record verified script entity upgrade deployment...
|
57
|
5
|
governance.yml
|
202
|
5
|
0
|
refs/heads/main
|
71d26562c234eb52fd40c941b3fb1161e91f6fb7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ad746899f4dda6cb8a0c7dbbe3dee2a50d77d1d5","after":"71d26562c234eb52fd40c941b3fb1161e91f6fb7","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ad746899f4dda6cb8a0c7dbbe3dee2a50d77d1d5...71d26562c234eb52fd40c941b3fb1161e91f6fb7","commits":[{"id":"71d26562c234eb52fd40c941b3fb1161e91f6fb7","message":"docs(releases): record verified script entity upgrade deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/71d26562c234eb52fd40c941b3fb1161e91f6fb7","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-10T20:59:50-07:00","added":["docs/releases/2026-09-11-script-entities1.md","reports/script-entity-upgrade-2026-09-11/deployment.json","reports/script-entity-upgrade-2026-09-11/live-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-11-script-entity-upgrade.md","docs/releases/current.md","reports/script-entity-upgrade-2026-09-11/README.md"]}],"total_commits":0,"head_commit":{"id":"71d26562c234eb52fd40c941b3fb1161e91f6fb7","message":"docs(releases): record verified script entity upgrade deployment\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/71d26562c234eb52fd40c941b3fb1161e91f6fb7","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-10T20:59:50-07:00","added":["docs/releases/2026-09-11-script-entities1.md","reports/script-entity-upgrade-2026-09-11/deployment.json","reports/script-entity-upgrade-2026-09-11/live-smoke.json"],"removed":[],"modified":["docs/governance/log/2026-09-11-script-entity-upgrade.md","docs/releases/current.md","reports/script-entity-upgrade-2026-09-11/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":903561,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation/languages","html_url":"https://gitea.g-hi.com/luoanwu/image-generation","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/image-generation","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/image-generation.git","clone_url":"https://gitea.g-hi.com/luoanwu/image-generation.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":12,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-06T17:04:22+08:00","updated_at":"2026-09-11T11:52: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
|
2
|
4
|
1789099195
|
1789099286
|
0
|
1789099194
|
1789099286
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23408
|
兼容 AI 助手空会话 ID
|
51
|
5
|
ci.yml
|
3
|
8
|
0
|
refs/heads/main
|
49de0c2d382fe761e459574e38b67a4d09f4604d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ad491b380b573d1f4389aa0e3a1aae0eceb467d8","after":"49de0c2d382fe761e459574e38b67a4d09f4604d","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ad491b380b573d1f4389aa0e3a1aae0eceb467d8...49de0c2d382fe761e459574e38b67a4d09f4604d","commits":[{"id":"49de0c2d382fe761e459574e38b67a4d09f4604d","message":"兼容 AI 助手空会话 ID\n\n允许 content/assistant 的 conversationId 为 null,并在校验后转为 undefined,避免首次对话请求被参数校验拒绝。\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/49de0c2d382fe761e459574e38b67a4d09f4604d","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-09T13:59:24+08:00","added":[],"removed":[],"modified":["server/src/modules/content/routes.ts"]}],"total_commits":0,"head_commit":{"id":"49de0c2d382fe761e459574e38b67a4d09f4604d","message":"兼容 AI 助手空会话 ID\n\n允许 content/assistant 的 conversationId 为 null,并在校验后转为 undefined,避免首次对话请求被参数校验拒绝。\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/49de0c2d382fe761e459574e38b67a4d09f4604d","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-09T13:59:24+08:00","added":[],"removed":[],"modified":["server/src/modules/content/routes.ts"]},"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":true,"fork":false,"template":false,"mirror":false,"size":6625,"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-02T18:12:56+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
|
1783576800
|
1783576912
|
0
|
1783576799
|
1783576912
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23647
|
docs: record full branch integration and acceptanc docs: record full branch integration and acceptance evidence...
|
57
|
5
|
governance.yml
|
19
|
5
|
0
|
refs/heads/main
|
c8262c6f267104598721c37a1781409e129f3ed7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"acd2accfb017c5b4e3f7ff5f00f33dd367797889","after":"c8262c6f267104598721c37a1781409e129f3ed7","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/acd2accfb017c5b4e3f7ff5f00f33dd367797889...c8262c6f267104598721c37a1781409e129f3ed7","commits":[{"id":"c8262c6f267104598721c37a1781409e129f3ed7","message":"docs: record full branch integration and acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c8262c6f267104598721c37a1781409e129f3ed7","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-05T21:41:58-07:00","added":["docs/governance/log/2026-09-05-merge-all.md","reports/branch-integration-2026-09-05/README.md","reports/branch-integration-2026-09-05/branches.json","reports/branch-integration-2026-09-05/check-summary.json","reports/branch-integration-2026-09-05/dependency-audit.latest.json","reports/branch-integration-2026-09-05/desktop-deliveries.png","reports/branch-integration-2026-09-05/desktop-events.png","reports/branch-integration-2026-09-05/desktop-reviews.png","reports/branch-integration-2026-09-05/inference-acceptance.latest.json","reports/branch-integration-2026-09-05/mobile-deliveries.png","reports/branch-integration-2026-09-05/mobile-events.png","reports/branch-integration-2026-09-05/mobile-reviews.png","reports/branch-integration-2026-09-05/production-acceptance.latest.json","reports/branch-integration-2026-09-05/public-file-acceptance.latest.json","reports/branch-integration-2026-09-05/runtime-acceptance.latest.json","reports/branch-integration-2026-09-05/script-acceptance.latest.json","reports/branch-integration-2026-09-05/ui-acceptance.latest.json","reports/branch-integration-2026-09-05/ui-extra.json"],"removed":[],"modified":["CLAUDE.md","reports/adversarial-acceptance-audit.latest.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/storyboard-director-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"d58e74fc4f192a9858b6a9548c6f5abf6fe77369","message":"test: align production intake entry with merged UI label\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d58e74fc4f192a9858b6a9548c6f5abf6fe77369","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-05T21:34:03-07:00","added":[],"removed":[],"modified":["scripts/lib/prd-ui-acceptance.mjs"]},{"id":"2e56a0924623ec2c7d9d9b7852fdec57f119d997","message":"test: verify semantic model selection after UI integration\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/2e56a0924623ec2c7d9d9b7852fdec57f119d997","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-05T21:30:10-07:00","added":[],"removed":[],"modified":["apps/web/tsconfig.json","scripts/check-ui-acceptance.mjs"]},{"id":"5c7e610b36b299783a76b9f994bfabe80933fcf5","message":"merge: include content support skills branch already integrated in accepted source\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5c7e610b36b299783a76b9f994bfabe80933fcf5","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-05T21:22:47-07:00","added":[],"removed":[],"modified":[]},{"id":"90f3d7741978622805c11fbd539ecec2b31c2b0c","message":"merge: integrate detail-page UX while preserving accepted content and security behavior\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/90f3d7741978622805c11fbd539ecec2b31c2b0c","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-05T21:22:24-07:00","added":["apps/web/src/components/material-factory/ActivityLog.tsx","apps/web/src/components/material-factory/asset-preview.ts","apps/web/src/components/material-factory/delivery-download.ts","apps/web/src/components/material-factory/format.ts","apps/web/src/components/material-factory/production-actors.ts"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/BlockedResolutionPanel.tsx","apps/web/src/components/material-factory/BrandHub.tsx","apps/web/src/components/material-factory/BrandLogoEditor.tsx","apps/web/src/components/material-factory/ContentStudio.tsx","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/CreativeSupportSkills.tsx","apps/web/src/components/material-factory/DeliveryCenter.tsx","apps/web/src/components/material-factory/DemoExportModal.tsx","apps/web/src/components/material-factory/DirectorReviewWorkbench.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/MasterCanvas.tsx","apps/web/src/components/material-factory/NarrativeBeats.tsx","apps/web/src/components/material-factory/PipelineFlow.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/PromoteDraftButton.tsx","apps/web/src/components/material-factory/QualityEvidencePanel.tsx","apps/web/src/components/material-factory/ReviewCenter.tsx","apps/web/src/components/material-factory/RoleConfirmPanel.tsx","apps/web/src/components/material-factory/RoleReferencePreview.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/StoryboardContactSheet.tsx","apps/web/src/components/material-factory/StoryboardScriptImport.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/StoryboardVisualAssetImport.tsx","apps/web/src/components/material-factory/TaskCenter.tsx","apps/web/src/components/material-factory/TemplateSizePicker.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx","apps/web/src/components/material-factory/VersionCompare.tsx","apps/web/src/components/material-factory/VideoContactImport.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/components/material-factory/constants.ts","apps/web/src/components/material-factory/content-studio.module.css","apps/web/src/components/material-factory/model-catalog.tsx","apps/web/src/components/material-factory/production-labels.ts","apps/web/src/components/material-factory/ui.tsx","docs/governance/log/2026-09-05.md"]}],"total_commits":0,"head_commit":{"id":"c8262c6f267104598721c37a1781409e129f3ed7","message":"docs: record full branch integration and acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/c8262c6f267104598721c37a1781409e129f3ed7","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-05T21:41:58-07:00","added":["docs/governance/log/2026-09-05-merge-all.md","reports/branch-integration-2026-09-05/README.md","reports/branch-integration-2026-09-05/branches.json","reports/branch-integration-2026-09-05/check-summary.json","reports/branch-integration-2026-09-05/dependency-audit.latest.json","reports/branch-integration-2026-09-05/desktop-deliveries.png","reports/branch-integration-2026-09-05/desktop-events.png","reports/branch-integration-2026-09-05/desktop-reviews.png","reports/branch-integration-2026-09-05/inference-acceptance.latest.json","reports/branch-integration-2026-09-05/mobile-deliveries.png","reports/branch-integration-2026-09-05/mobile-events.png","reports/branch-integration-2026-09-05/mobile-reviews.png","reports/branch-integration-2026-09-05/production-acceptance.latest.json","reports/branch-integration-2026-09-05/public-file-acceptance.latest.json","reports/branch-integration-2026-09-05/runtime-acceptance.latest.json","reports/branch-integration-2026-09-05/script-acceptance.latest.json","reports/branch-integration-2026-09-05/ui-acceptance.latest.json","reports/branch-integration-2026-09-05/ui-extra.json"],"removed":[],"modified":["CLAUDE.md","reports/adversarial-acceptance-audit.latest.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/storyboard-director-guard.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":283872,"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-06T11:34:41+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
|
1788670197
|
1788670617
|
0
|
1788670196
|
1788670617
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23787
|
test(template): verify combined release and settle test(template): verify combined release and settled director locking...
|
57
|
5
|
governance.yml
|
157
|
5
|
0
|
refs/heads/main
|
5be805bc68721833734282a6940007a275583165
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ab568e701b98d0e678ee9af7b1c56ccf1937e576","after":"5be805bc68721833734282a6940007a275583165","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/ab568e701b98d0e678ee9af7b1c56ccf1937e576...5be805bc68721833734282a6940007a275583165","commits":[{"id":"5be805bc68721833734282a6940007a275583165","message":"test(template): verify combined release and settled director locking\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5be805bc68721833734282a6940007a275583165","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:36:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.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/template-making-uiux-20260909/README.md","reports/template-making-uiux-20260909/summary.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]},{"id":"3568643a79588fcc4a9f76c1aabc201291379048","message":"docs: retain verified frame rollout records\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3568643a79588fcc4a9f76c1aabc201291379048","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:26:07-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"]},{"id":"6c0025e13c2f8abdef7332129ae9407570093694","message":"merge: preserve published frame dialogs before template release\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/6c0025e13c2f8abdef7332129ae9407570093694","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:24:27-07:00","added":["docs/governance/log/2026-09-09-storyboard-frame-dialog.md","reports/director-review-20260909/summary.json","reports/storyboard-frame-dialog-20260909/README.md","reports/storyboard-frame-dialog-20260909/desktop.first.png","reports/storyboard-frame-dialog-20260909/desktop.last.png","reports/storyboard-frame-dialog-20260909/mobile.first.png","reports/storyboard-frame-dialog-20260909/mobile.last.png","reports/storyboard-frame-dialog-20260909/mobile.saved.png","reports/storyboard-frame-dialog-20260909/summary.json","scripts/lib/storyboard-frame-dialog-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/StoryboardFrameGeneration.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","docs/governance/log/2026-09-09-director-review.md","reports/contract-consumers.latest.json","reports/director-review-20260909/README.md","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","scripts/check-ui-acceptance.mjs"]},{"id":"1f75c207f4de0e7dfe94b0184b74d3e9d1f0fba2","message":"fix(template): keep focused fields visible in compact editor layouts\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1f75c207f4de0e7dfe94b0184b74d3e9d1f0fba2","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:24:13-07:00","added":["docs/releases/2026-09-09-template-making-uiux1.md"],"removed":[],"modified":["apps/web/src/components/material-factory/EditStudio.tsx","docs/governance/log/2026-09-09-template-making-uiux.md","reports/dependency-audit.latest.json","reports/inference-acceptance.latest.json","reports/production-acceptance.latest.json","reports/public-file-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/script-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/template-making-uiux-20260909/summary.json","reports/ui-acceptance.latest.json","scripts/lib/template-making-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"5be805bc68721833734282a6940007a275583165","message":"test(template): verify combined release and settled director locking\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5be805bc68721833734282a6940007a275583165","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:36:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-09-09-template-making-uiux.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/template-making-uiux-20260909/README.md","reports/template-making-uiux-20260909/summary.json","reports/toolchain.latest.json","reports/ui-acceptance.latest.json","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":774066,"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:25: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
|
2
|
4
|
1788953800
|
1788953840
|
0
|
1788953798
|
1788953840
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23974
|
chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提 chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交...
|
82
|
5
|
governance.yml
|
4
|
5
|
0
|
refs/heads/main
|
7c4b197f018b02f5ed675758af3f5be5dbd1de02
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7","after":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/ab2e7f155b4fbe2e9bebc1ac4887247efc0e97c7...7c4b197f018b02f5ed675758af3f5be5dbd1de02","commits":[{"id":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 22 份 reports/*.latest.json 无一绑定当前 HEAD,21 份还生成于脏树,\n按证据纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (ab2e7f1) 上逐条重跑:15 通过 / 3 失败,16 份报告 provenance\n全部 gitSha=ab2e7f1 且 worktreeDirty=false。\n\n三条失败**不是判定失败,是跑不起来**——缺环境变量,属需实例门禁:\n- check-capacity CAPACITY_FASTIFY_URL\n- check-dual-backend-behavior DATABASE_URL + REDIS_URL\n- check-outbox-operations DATABASE_URL\n\n也就是说本仓静态面 15/15 全绿。按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升\n到静态一级;需实例那三条要另起一轮。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7c4b197f018b02f5ed675758af3f5be5dbd1de02","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-15T00:34:15-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/capacity.latest.json","reports/configuration-consumer.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/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]}],"total_commits":0,"head_commit":{"id":"7c4b197f018b02f5ed675758af3f5be5dbd1de02","message":"chore(governance): 在 clean HEAD 上重跑静态门禁,证据第一次绑定当前提交\n\n迁移后本仓 22 份 reports/*.latest.json 无一绑定当前 HEAD,21 份还生成于脏树,\n按证据纪律一律 STALE——当前 HEAD 的质量一直是未知数。\n\n本次在 clean HEAD (ab2e7f1) 上逐条重跑:15 通过 / 3 失败,16 份报告 provenance\n全部 gitSha=ab2e7f1 且 worktreeDirty=false。\n\n三条失败**不是判定失败,是跑不起来**——缺环境变量,属需实例门禁:\n- check-capacity CAPACITY_FASTIFY_URL\n- check-dual-backend-behavior DATABASE_URL + REDIS_URL\n- check-outbox-operations DATABASE_URL\n\n也就是说本仓静态面 15/15 全绿。按证据等级\"静态 \u003c 真实 DB \u003c 浏览器\",本次只提升\n到静态一级;需实例那三条要另起一轮。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7c4b197f018b02f5ed675758af3f5be5dbd1de02","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-15T00:34:15-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/capacity.latest.json","reports/configuration-consumer.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/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},"repository":{"id":82,"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-ai-work-order-system","full_name":"luoanwu/juhai-ai-work-order-system","description":"巨嗨 AI 工单系统:治理型工单核心与 Digital Employee OS 产品适配层","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1857,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-work-order-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-work-order-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-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-26T09:08:57+08:00","updated_at":"2026-09-15T10:54: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
|
2
|
6
|
1789458993
|
1789459020
|
0
|
1789458921
|
1789459022
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23832
|
chore(reports): refresh clean static evidence @ b1 chore(reports): refresh clean static evidence @ b1f2d1c...
|
54
|
5
|
governance.yml
|
34
|
5
|
0
|
refs/heads/main
|
e8d262220de86b35614cdeb27802673a82930ffa
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ab054bc1433dbfb7a9834ac77c7e0eba0e81cabc","after":"e8d262220de86b35614cdeb27802673a82930ffa","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/ab054bc1433dbfb7a9834ac77c7e0eba0e81cabc...e8d262220de86b35614cdeb27802673a82930ffa","commits":[{"id":"e8d262220de86b35614cdeb27802673a82930ffa","message":"chore(reports): refresh clean static evidence @ b1f2d1c\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/e8d262220de86b35614cdeb27802673a82930ffa","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:38:07-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":"b1f2d1cf6c4651611763dd9e4a11045bf9a6478c","message":"docs: record clean commit acceptance @ 36bd170(v0.16.0 @juhai/kernel 拆包:runtime 288 / 差分 10×2 / 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/b1f2d1cf6c4651611763dd9e4a11045bf9a6478c","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:37:21-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/conformance-differential.latest.json","reports/runtime-acceptance.latest.json","reports/ui-acceptance.latest.json"]},{"id":"36bd170ad4ddc011d55f87a90e880fc053e205b0","message":"feat(kernel): 内核成为独立可发布包 @juhai/kernel,源码留框架仓(0.16.0)\n\n- packages/kernel(@juhai/kernel):15 个内核模块与单测自 packages/contracts/src 整体移入;只依赖 zod;版本随框架;\n files=[dist]、sideEffects:false、publishConfig 指向 Gitea luoanwu npm registry;.npmrc 配 @juhai 作用域\n- @repo/contracts 依赖 @juhai/kernel 并只转发(kernel.ts = export * from);根入口/子路径与应用 import 不变;order.ts 改从内核取 MachineDefinition\n- contracts 单测拆分:内核契约单测随模块入内核包,contracts 留 layering.test.ts(F10)与 order.test.ts\n- F10 改校验内核包(不 import 示例域/@repo/contracts、不内嵌域事件字面量、contracts kernel.ts 只转发);F11 新增内核包形状断言\n- 差分与 UI runner 经 turbo 按依赖序构建内核→contracts;contract-consumers job 断言指向 packages/kernel;docs 路径同步\n- framework:pack 双制品(juhai-kernel / repo-contracts)、framework:publish;CHANGELOG/COMPATIBILITY 0.16.0;pnpm-lock 更新\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/36bd170ad4ddc011d55f87a90e880fc053e205b0","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:34:14-07:00","added":[".npmrc","packages/contracts/src/layering.test.ts","packages/kernel/package.json","packages/kernel/src/alert.test.ts","packages/kernel/src/alert.ts","packages/kernel/src/api-error.ts","packages/kernel/src/health.ts","packages/kernel/src/index.ts","packages/kernel/src/job.test.ts","packages/kernel/src/job.ts","packages/kernel/src/kernel-contracts.test.ts","packages/kernel/src/platform-ports.test.ts","packages/kernel/src/platform-ports.ts","packages/kernel/src/realtime-command.test.ts","packages/kernel/src/realtime-command.ts","packages/kernel/src/realtime-stats.ts","packages/kernel/src/realtime.ts","packages/kernel/src/replay-buffer.test.ts","packages/kernel/src/replay-buffer.ts","packages/kernel/src/replay.test.ts","packages/kernel/src/replay.ts","packages/kernel/src/request-context.test.ts","packages/kernel/src/request-context.ts","packages/kernel/src/statemachine.test.ts","packages/kernel/src/statemachine.ts","packages/kernel/src/subscription.test.ts","packages/kernel/src/subscription.ts","packages/kernel/src/tenant-rls.test.ts","packages/kernel/src/tenant-rls.ts","packages/kernel/src/tenant.ts","packages/kernel/tsconfig.json"],"removed":["packages/contracts/src/alert.test.ts","packages/contracts/src/alert.ts","packages/contracts/src/api-error.ts","packages/contracts/src/contracts.test.ts","packages/contracts/src/health.ts","packages/contracts/src/job.test.ts","packages/contracts/src/job.ts","packages/contracts/src/platform-ports.test.ts","packages/contracts/src/platform-ports.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/request-context.test.ts","packages/contracts/src/request-context.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-rls.test.ts","packages/contracts/src/tenant-rls.ts","packages/contracts/src/tenant.ts"],"modified":["CHANGELOG.md","CLAUDE.md","COMPATIBILITY.md","README.md","docs/README.md","docs/standards/api-standard.md","docs/standards/review-standard.md","docs/tenant-rls.md","package.json","packages/contracts/package.json","packages/contracts/src/index.ts","packages/contracts/src/kernel.ts","packages/contracts/src/order.ts","pnpm-lock.yaml","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":"e8d262220de86b35614cdeb27802673a82930ffa","message":"chore(reports): refresh clean static evidence @ b1f2d1c\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/e8d262220de86b35614cdeb27802673a82930ffa","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:38:07-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":4737,"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-10T19:09: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
|
2
|
10
|
1789047500
|
1789047591
|
0
|
1789047498
|
1789048636
|
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
|