| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1740dc53f3eff71b45cdd1f78df82903818b75db","after":"4a504694a8ba4fd35e119ce09fef3856289b4ec9","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/1740dc53f3eff71b45cdd1f78df82903818b75db...4a504694a8ba4fd35e119ce09fef3856289b4ec9","commits":[{"id":"4a504694a8ba4fd35e119ce09fef3856289b4ec9","message":"chore(evidence): record C51 static 20/20 at 09ea21e and runtime/UI/deployment/production at f4e3f6a\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4a504694a8ba4fd35e119ce09fef3856289b4ec9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T17:13:49-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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/kernel-api.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/prisma-client.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tenant-grants.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"09ea21ef273951258780d28f4866ed1117792410","message":"docs(evidence): backfill C51 four-level freshness at clean f4e3f6a\n\nRuntime 490/0 (RLS enforce), UI 4x11, deployment 13 steps with 1 rollback,\nproduction 14 steps. Deployment levels first failed at stack start because\nthe local Docker address pools were exhausted; passed after freeing this\nround's own acceptance stack.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/09ea21ef273951258780d28f4866ed1117792410","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T17:12:04-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md"]},{"id":"f4e3f6ad23e82f5b665299d01500e4cf9bbb6da5","message":"fix(d3): treat empty HOST as unset so it also falls back to loopback (C51)\n\n`process.env.HOST ?? \"127.0.0.1\"` passes an empty string (e.g. compose\n`HOST: ${HOST:-}`) straight to listen. Use || in both entries, as the\nAI人事系统 listen-host.ts already does, and make the C51 tripwire accept\nonly ||. Fifth negative (?? form) exits 1; green after restore.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/f4e3f6ad23e82f5b665299d01500e4cf9bbb6da5","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T17:01:58-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","COMPATIBILITY.md","apps/api-fastify/src/server.ts","apps/api-nestjs/src/main.ts","docs/governance-experience.md","docs/standards/backend-standard.md","scripts/check-dual-backend-parity.mjs"]},{"id":"8e22a6d89ce1cb446f4f92b8131f5965cf690879","message":"fix(d3): default the listen host to loopback and set HOST in the image (C51)\n\nFramework Owner chose HR F-7 option (a) on 2026-10-27. Both host entries\nused `process.env.HOST ?? \"0.0.0.0\"`, so a plain `pnpm dev` (demo auth by\ndefault) published the API on the LAN, and a derived repo's own loopback\nfix (AI人事系统 D-10) would be reverted by the next framework sync.\n\n- apps/api-nestjs/src/main.ts and apps/api-fastify/src/server.ts default\n to 127.0.0.1; exposure needs an explicit HOST (HOST=:: for IPv6).\n- apps/api-nestjs/Dockerfile runtime target sets ENV HOST=0.0.0.0, since\n loopback inside a container is unreachable through port mapping. The\n image is the single place that sets it; the compose file does not repeat it.\n- check:dual-backend C51 tripwire: loopback default in both entries, no\n hard-coded 0.0.0.0 in entries, Dockerfile runtime ENV HOST=0.0.0.0.\n Negative: four mutations each exit 1, green after restore.\n- backend standard, ADR-0010 D3, migration playbook, COMPATIBILITY,\n CHANGELOG, doctrine index and experience C51 updated.\n\nFull static chain 20 steps, test:scripts 465/465 on the dirty worktree.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/8e22a6d89ce1cb446f4f92b8131f5965cf690879","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T17:00:05-07:00","added":[],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","COMPATIBILITY.md","apps/api-fastify/src/server.ts","apps/api-nestjs/Dockerfile","apps/api-nestjs/src/main.ts","docs/adr/0010-governance-layering-and-evidence-model.md","docs/governance-experience.md","docs/migration-playbook.md","docs/standards/backend-standard.md","scripts/check-dual-backend-parity.mjs"]}],"total_commits":0,"head_commit":{"id":"4a504694a8ba4fd35e119ce09fef3856289b4ec9","message":"chore(evidence): record C51 static 20/20 at 09ea21e and runtime/UI/deployment/production at f4e3f6a\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4a504694a8ba4fd35e119ce09fef3856289b4ec9","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-27T17:13:49-07:00","added":[],"removed":[],"modified":["reports/agent-adapters.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/deployment-acceptance.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/kernel-api.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/prisma-client.latest.json","reports/production-acceptance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tenant-grants.latest.json","reports/ui-acceptance.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":17200,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-10-28T07:17: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"}}... |