| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eec3099126197721a5d2437962c531943e5a90b1","after":"ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/eec3099126197721a5d2437962c531943e5a90b1...ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3","commits":[{"id":"ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3","message":"docs: 记录两条口径裁定及其落地——退款流水记正、装修实验任何状态可删\n\n- 第二批治理记录补「口径裁定后的补充」一节:迁移对已有数据的处理、种子订正、审计、验收\n- 开发计划第二批行与规模读数(31 迁移)、CLAUDE.md 迁移数、治理经验库 G-016 证据同步\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3","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-03T16:25:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/real-implementation-governance-batch2-2026-10-03.md","开发计划.md","治理经验库.md"]},{"id":"5bc6a053018e97e55e272f9fa4b7aeff8df69eb5","message":"feat(decor): 删除装修实验留审计;「任何状态可删」用测试固定\n\n用户 2026-10-03 裁定:进行中或已采纳的装修实验可以删。行为不变。\n\n- 删除与一条审计(名称、被测要素、删除时状态、赢家变体、变体数)同事务:实验与变体删了就没了,审计是唯一痕迹\n- r35 对应用例扩为草稿 / 进行中 / 已采纳各删一遍,断言三条审计、已采纳写回门面的值不回退、别的租户删不了(用例数不变)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/5bc6a053018e97e55e272f9fa4b7aeff8df69eb5","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-03T16:25:44-07:00","added":[],"removed":[],"modified":["server/src/modules/decor/abtest.ts","server/test/r35-uncovered-writes.test.ts"]},{"id":"6507b0c80e396f5d4bf0ca1dbf9de495f9538802","message":"feat(db): 钱包退款流水记正——约束收紧到「只有抵扣记负」,订正种子\n\n用户 2026-10-03 裁定:REFUND = 退款回滚,把此前抵扣的钱退回钱包,记正。\n\n- 新迁移 20261003231916_wallet_refund_positive:WalletTxn_amount_sign 改为只有 DEDUCT 可为负,其余类型(含 REFUND)不得为负\n- 先 NOT VALID 加上(立刻约束此后的写入),库里没有旧的负数退款行时紧接着校验;有旧行的库不回改数据\n- 实测两条路径:全新库 convalidated = t;旧种子灌过的库(4 条负数退款行)迁移正常应用、新写入被拒、重新 seed 后手工 VALIDATE 成功\n- 种子此前把退款当扣减算余额,改为加回;两个品类的赵女士各补一笔 ¥128 抵扣,让 ¥50 退款回滚有东西可退\n- r33 对应用例改为:负数退款被拒、正数可写、种子退款为正且余额等于流水之和(用例数不变)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/6507b0c80e396f5d4bf0ca1dbf9de495f9538802","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-03T16:25:44-07:00","added":["server/prisma/migrations/20261003231916_wallet_refund_positive/migration.sql"],"removed":[],"modified":["server/prisma/seed.ts","server/test/r33-data-integrity.test.ts"]}],"total_commits":0,"head_commit":{"id":"ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3","message":"docs: 记录两条口径裁定及其落地——退款流水记正、装修实验任何状态可删\n\n- 第二批治理记录补「口径裁定后的补充」一节:迁移对已有数据的处理、种子订正、审计、验收\n- 开发计划第二批行与规模读数(31 迁移)、CLAUDE.md 迁移数、治理经验库 G-016 证据同步\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3","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-03T16:25:44-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/real-implementation-governance-batch2-2026-10-03.md","开发计划.md","治理经验库.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":88697,"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":2,"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-10-04T07:01:07+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}... |