| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7e8e9eaf847212d7259f7bb29ceacb7ba6301589","after":"1740dc53f3eff71b45cdd1f78df82903818b75db","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/7e8e9eaf847212d7259f7bb29ceacb7ba6301589...1740dc53f3eff71b45cdd1f78df82903818b75db","commits":[{"id":"1740dc53f3eff71b45cdd1f78df82903818b75db","message":"chore(evidence): record static 20/20 and test:scripts 465/465 at fa3e361 (C50)\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/1740dc53f3eff71b45cdd1f78df82903818b75db","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-27T16:17: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/kernel-api.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/prisma-client.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tenant-grants.latest.json","reports/validation-source.latest.json"]},{"id":"fa3e3616fbbca4c6edaa0f3bd4677551dac058c9","message":"fix(f14): bind template data stores to loopback and parse three-part port specs (C50)\n\nAI人事系统 10-27 (H22/D-10) found the dev base publishing PostgreSQL\n(password `app`) and Redis (no password) on every host interface; seven\nother derived repos still carry the same template line, and the KTV\nembedded production compose does the same. Fix at the source:\n\n- apps/api-nestjs/docker-compose.yml and deploy/production/compose.yml\n bind postgres/redis host ports to 127.0.0.1. Deployment and production\n acceptance reach the stores through the compose network and\n `compose exec`; `docker compose config` reads back host_ip=127.0.0.1,\n API port unchanged.\n- F14 now parses ports with scripts/lib/compose-ports.mjs (split on\n colons outside `${...}`). The old regex only matched two-part specs, so\n HR's correct `127.0.0.1:6379:6379` fix made the line invisible and its\n hardcoded host port went unchecked. New assertion: data-store images\n (postgres/redis/valkey/minio/mysql/mariadb/mongo) must bind loopback.\n- F14 compose walk skips gitignored .worktrees (other sessions' checkouts).\n\nNegative: before the template change F14 reported 4 data-store ports\n(plus 1 inside .worktrees); green after. 10 new unit tests. Full static\nchain 20 steps and test:scripts 465/465 passed on the dirty worktree.\nAPI HOST default left for the framework Owner (HR F-7).\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/fa3e3616fbbca4c6edaa0f3bd4677551dac058c9","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-27T16:15:47-07:00","added":["scripts/lib/compose-ports.mjs","scripts/lib/compose-ports.test.mjs"],"removed":[],"modified":["CHANGELOG.md","CLAUDE.md","COMPATIBILITY.md","apps/api-nestjs/docker-compose.yml","deploy/production/compose.yml","docs/governance-experience.md","docs/migration-playbook.md","scripts/check-fork-readiness.mjs"]}],"total_commits":0,"head_commit":{"id":"1740dc53f3eff71b45cdd1f78df82903818b75db","message":"chore(evidence): record static 20/20 and test:scripts 465/465 at fa3e361 (C50)\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/1740dc53f3eff71b45cdd1f78df82903818b75db","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-27T16:17: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/kernel-api.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/prisma-client.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tenant-grants.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":16941,"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-27T17:31: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"}}... |