| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a","after":"30ca0fd0cdec3d23f9e8e56d417132ab5a685206","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/2e1790389ad8e1d76caadd4d3cad5ea87ad7fb3a...30ca0fd0cdec3d23f9e8e56d417132ab5a685206","commits":[{"id":"30ca0fd0cdec3d23f9e8e56d417132ab5a685206","message":"test(governance): verify the governance blind-spot round\n\nEight fingerprint-bound gates (runtime, public-file, inference, script,\nproduction, ui, deps, shijie) passed on sha256:83e807a1… in an isolated\nstack; the models snapshot honestly reports 5/8 weights from the host\ndirectory; full static chain passed. Evidence:\nacceptance-artifacts/governance-blindspots-2026-09-12/.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/30ca0fd0cdec3d23f9e8e56d417132ab5a685206","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-11T23:15:10-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-12-governance-blindspots.md","reports/admin-brands.mobile.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.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-models.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/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/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"]},{"id":"09dfe49c0bbf03ca2a5eadf482ec9a2a1de5ab34","message":"Merge branch 'main' into chore/governance-blindspots-20260912\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/09dfe49c0bbf03ca2a5eadf482ec9a2a1de5ab34","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-11T23:04:40-07:00","added":["docs/releases/2026-09-12-camera-console1.md","reports/camera-console-2026-09-12/README.md","reports/camera-console-2026-09-12/deployment.json","reports/camera-console-2026-09-12/live.json"],"removed":[],"modified":["docs/governance/log/2026-09-12-camera-console.md","docs/releases/current.md"]},{"id":"70d34639a4b4098bb58c392b2d842d1a87a177fe","message":"fix(deploy): mount host model weights and prove OCR readiness at release\n\nFixed-source releases start from LFS-skipped worktrees, so the relative\n../../models mount handed the sidecar pointer files: /healthz reported\ndegraded, OCR and local weights were off while every container stayed\nhealthy and the boundary probes only checked the 401. The mount now comes\nfrom MATERIAL_MODELS_HOST_DIR, release.py adds a sidecar-ocr-ready probe\n(status ok + paddleOcrEnabled), check:models reads the same variable, and\nproduction-security pins both.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/70d34639a4b4098bb58c392b2d842d1a87a177fe","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-11T23:04:05-07:00","added":[],"removed":[],"modified":["CLAUDE.md","deploy/vm/.env.example","deploy/vm/docker-compose.yml","deploy/vm/release.py","deploy/vm/release_test.py","docs/deploy-vm.md","docs/governance/log/2026-09-12-governance-blindspots.md","reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.images-desktop.png","reports/content-detail.images-factual-dialog-desktop.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","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-models.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/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/startup-acceptance.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-asset-dialog.mobile.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.first.png","reports/storyboard-frame-dialog.mobile.last.png","reports/template-making.1135.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/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","scripts/check-material-models.mjs","scripts/check-production-security.mjs"]},{"id":"5d78da5b9e4f694571e6af490e2063df0d11d960","message":"merge: bring the shijie camera console into the governance round\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5d78da5b9e4f694571e6af490e2063df0d11d960","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-11T22:48:41-07:00","added":["apps/web/src/components/material-factory/shijie/CameraConsole.tsx","docs/governance/log/2026-09-12-camera-console.md","reports/camera-console-2026-09-12/ui.json"],"removed":[],"modified":["CLAUDE.md","apps/web/src/components/material-factory/shijie/ShijieStudio.tsx","apps/web/src/components/material-factory/shijie/shijie.module.css","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/public-file-acceptance.latest.json","reports/public-file-integration.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.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-shijie-generation-ui.cjs"]},{"id":"839f7604c203116e69e64758796426fd4b7c412d","message":"chore(governance): close acceptance-bypass, schema-structure and audit blind spots\n\n- acceptanceBypassActive() single source in enterprise-identity: the two\n acceptance variables never override a configured gateway secret; five\n consumers, backend guard regressions and 11 production-security rules\n- check:schema compares both Prisma schemas block by block; Fastify relation\n name realigned with NestJS (no migration)\n- prisma:generate runs serially (parallel generate tore the shared client and\n produced the CI false red on 69dbb49b)\n- shijie-acceptance report audited and fingerprint-bound; models/startup\n reports marked as environment snapshots\n- check:ui removes its credential fixtures; release.py rejects containers with\n bypass variables and writes build.log with 0600\n- CLAUDE.md: product name, schema check, G13 fourth sync entry, shijie row,\n real CI runs, G34 for the three known write-chain defects\n- docs: deploy-vm timezone and bypass rules, dependency-overrides ledger, PRD\n brand wording, governance log\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/839f7604c203116e69e64758796426fd4b7c412d","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-09-11T22:46:16-07:00","added":["docs/dependency-overrides.md","docs/governance/log/2026-09-12-governance-blindspots.md","packages/enterprise-identity/src/acceptance-bypass.test.ts","scripts/lib/prisma-schema-structure.mjs","scripts/lib/prisma-schema-structure.test.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/src/common/creative-transport.ts","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","apps/web/src/lib/server/browser-identity.ts","deploy/vm/release.py","deploy/vm/release_test.py","docs/deploy-vm.md","docs/product/controlled-ai-material-factory.md","package.json","packages/enterprise-identity/src/index.ts","reports/production-security.latest.json","reports/project-deep-analysis-2026-09-11.md","reports/schema-sync.latest.json","scripts/check-production-security.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"30ca0fd0cdec3d23f9e8e56d417132ab5a685206","message":"test(governance): verify the governance blind-spot round\n\nEight fingerprint-bound gates (runtime, public-file, inference, script,\nproduction, ui, deps, shijie) passed on sha256:83e807a1… in an isolated\nstack; the models snapshot honestly reports 5/8 weights from the host\ndirectory; full static chain passed. Evidence:\nacceptance-artifacts/governance-blindspots-2026-09-12/.\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/30ca0fd0cdec3d23f9e8e56d417132ab5a685206","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-11T23:15:10-07:00","added":[],"removed":[],"modified":["docs/governance/log/2026-09-12-governance-blindspots.md","reports/admin-brands.mobile.png","reports/content-detail.output-desktop.png","reports/content-detail.plans-desktop.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/director-workbench.desktop.png","reports/governance-docs.latest.json","reports/governance.latest.json","reports/image-creation-1135.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-models.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/shijie-acceptance.latest.json","reports/sidecar-tests.latest.json","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-director-guard.latest.json","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.saved.png","reports/template-making.1135.png","reports/template-making.1280.png","reports/template-making.1440.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/template-types.mobile.png","reports/toolchain.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","reports/ui-acceptance.latest.json","reports/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"]},"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":916530,"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":13,"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-12T14:14:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}... |