|
25148
|
docs: record all-branch merge acceptance and no-de docs: record all-branch merge acceptance and no-deployment boundary...
|
51
|
5
|
ci.yml
|
18
|
5
|
0
|
refs/heads/main
|
91baf1dd946e0668898de426705f1bd8added1d4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ef60e0581c3f779fd3a9d709a18073882bceb9aa","after":"91baf1dd946e0668898de426705f1bd8added1d4","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ef60e0581c3f779fd3a9d709a18073882bceb9aa...91baf1dd946e0668898de426705f1bd8added1d4","commits":[{"id":"91baf1dd946e0668898de426705f1bd8added1d4","message":"docs: record all-branch merge acceptance and no-deployment boundary\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/91baf1dd946e0668898de426705f1bd8added1d4","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-03T08:37:38-07:00","added":[],"removed":[],"modified":["docs/merge-all-branches-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"91baf1dd946e0668898de426705f1bd8added1d4","message":"docs: record all-branch merge acceptance and no-deployment boundary\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/91baf1dd946e0668898de426705f1bd8added1d4","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-03T08:37:38-07:00","added":[],"removed":[],"modified":["docs/merge-all-branches-2026-10-03.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":88345,"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-03T23:35:52+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
|
3
|
5
|
0
|
1791043713
|
0
|
1791041861
|
1791043713
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25150
|
fix: govern real platform ingestion and database a fix: govern real platform ingestion and database audit integrity...
|
51
|
5
|
ci.yml
|
20
|
5
|
0
|
refs/heads/main
|
87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"91baf1dd946e0668898de426705f1bd8added1d4","after":"87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/91baf1dd946e0668898de426705f1bd8added1d4...87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea","commits":[{"id":"87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea","message":"fix: govern real platform ingestion and database audit integrity\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea","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-03T09:08:08-07:00","added":["docs/real-implementation-governance-2026-10-03.md","e2e/tests/06-platform-truth.spec.ts","server/test/platform-ingest-integrity.unit.test.ts","server/test/r30-platform-http-integrity.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/README.md","e2e/package.json","server/README.md","server/src/adapters/platform/http.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/schema.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/contract-schema.unit.test.ts","server/test/platform-adapter.unit.test.ts","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md","治理经验库.md","真实链路与状态机审计矩阵.md","项目阻塞点分析.md"]}],"total_commits":0,"head_commit":{"id":"87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea","message":"fix: govern real platform ingestion and database audit integrity\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea","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-03T09:08:08-07:00","added":["docs/real-implementation-governance-2026-10-03.md","e2e/tests/06-platform-truth.spec.ts","server/test/platform-ingest-integrity.unit.test.ts","server/test/r30-platform-http-integrity.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/README.md","e2e/package.json","server/README.md","server/src/adapters/platform/http.ts","server/src/modules/platforms/routes.ts","server/src/modules/platforms/schema.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/contract-schema.unit.test.ts","server/test/platform-adapter.unit.test.ts","团购本地生活AI运营App/ui.jsx","团购本地生活AI运营App/upgrades.jsx","开发计划.md","治理经验库.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":88351,"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-03T23:37: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
|
3
|
5
|
0
|
1791043768
|
0
|
1791043713
|
1791043768
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25152
|
docs: record real implementation acceptance and cl docs: record real implementation acceptance and cloud synchronization...
|
51
|
5
|
ci.yml
|
22
|
5
|
0
|
refs/heads/main
|
14faa2a20bbc99dda66a446ac86f9f304b3bd264
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea","after":"14faa2a20bbc99dda66a446ac86f9f304b3bd264","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/87f4c793c5c2e68cc8979412b7b1bd8ca5c527ea...14faa2a20bbc99dda66a446ac86f9f304b3bd264","commits":[{"id":"14faa2a20bbc99dda66a446ac86f9f304b3bd264","message":"docs: record real implementation acceptance and cloud synchronization\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/14faa2a20bbc99dda66a446ac86f9f304b3bd264","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-03T09:09:11-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"14faa2a20bbc99dda66a446ac86f9f304b3bd264","message":"docs: record real implementation acceptance and cloud synchronization\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/14faa2a20bbc99dda66a446ac86f9f304b3bd264","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-03T09:09:11-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-2026-10-03.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":88494,"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-04T00:08: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
|
3
|
5
|
0
|
1791068442
|
0
|
1791043768
|
1791068442
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25154
|
docs: 真实实现治理第二批落文档——范围、问题与修法、数据层约束、验收与未做项
|
51
|
5
|
ci.yml
|
24
|
5
|
0
|
refs/heads/main
|
bd2d1f6a36311732377749ff7387004fa7eb6fe2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"14faa2a20bbc99dda66a446ac86f9f304b3bd264","after":"bd2d1f6a36311732377749ff7387004fa7eb6fe2","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/14faa2a20bbc99dda66a446ac86f9f304b3bd264...bd2d1f6a36311732377749ff7387004fa7eb6fe2","commits":[{"id":"bd2d1f6a36311732377749ff7387004fa7eb6fe2","message":"docs: 真实实现治理第二批落文档——范围、问题与修法、数据层约束、验收与未做项\n\n- docs/real-implementation-governance-batch2-2026-10-03.md:本批记录\n- 开发计划 v1.8 表补「第二批」行与指针;项目进展分析 07-01 数据层一节加订正\n- CLAUDE.md:查询参数走 lib/query.ts、状态变更必须 CAS、CHECK 约束迁移的做法、接口覆盖棘轮;规模数字 30 迁移 / 484 用例 / R0–R35\n- README / server README 数字同步\n- 治理经验库 G-014(量成功调用的接口)/ G-015(CAS 与同事务)/ G-016(不变式下沉数据库)\n- ygg-seed-migration-guard 技能补 CHECK 约束迁移的例外做法\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/bd2d1f6a36311732377749ff7387004fa7eb6fe2","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-03T09:38:15-07:00","added":["docs/real-implementation-governance-batch2-2026-10-03.md"],"removed":[],"modified":[".claude/skills/ygg-seed-migration-guard/SKILL.md","CLAUDE.md","README.md","server/README.md","开发计划.md","治理经验库.md","项目进展分析_2026-07-01.md"]},{"id":"acf778ab0ebebc39ad5f880a8305dc3ad212bf9b","message":"test(coverage): 接口覆盖棘轮 npm run test:routes——量「被测试成功调用过的接口」\n\n- test/helpers.ts:设了 ROUTE_COVERAGE_LOG 时记录每个请求的方法 / 路径 / 状态码,不设时行为不变\n- scripts/route-coverage.mjs:对照 OpenAPI 全部接口,列出没有任何 2xx 调用的;基线 test/route-coverage.baseline.json 只许变短\n- 首次测量(main 91baf1d)147 / 185;本分支补测后 181 / 185,余下 4 个都是平台授权 / 写回,原因写在基线里\n- r35 再补 AI 会话详情与装修实验删除两条;r33 的用例表改为内联字面量,docs-metrics 与 vitest 口径一致(484)\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/acf778ab0ebebc39ad5f880a8305dc3ad212bf9b","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-03T09:36:35-07:00","added":["server/scripts/route-coverage.mjs","server/test/route-coverage.baseline.json"],"removed":[],"modified":[".gitignore","server/package.json","server/test/helpers.ts","server/test/r33-data-integrity.test.ts","server/test/r35-uncovered-writes.test.ts"]},{"id":"b3c6eabc670e6f6e277643f41d4b865d446e3668","message":"fix(api): 门店与运维入参加上界;巡检负责人须是本店成员\n\n- POST/PATCH /stores:名称 / 分店 / 地址此前没有长度上限\n- 运维工单、巡检、卫生打卡的字符串与数组同样补上界\n- POST /ops/inspections 的 assigneeId 此前不校验归属,可以把别的租户的用户挂到本店巡检上;现与任务模块同口径,非本店成员 400\n- 新增 r35 13 例:门店管理、会员画像与流水、按会员归户、任务修改、预算迁移、巡检 / 工单升级 / 设备下架 / 卫生打卡,\n 以及几个只读接口——这些接口此前没有成功路径的真实库测试\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/b3c6eabc670e6f6e277643f41d4b865d446e3668","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-03T09:25:17-07:00","added":["server/test/r35-uncovered-writes.test.ts"],"removed":[],"modified":["server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/store/schema.ts"]},{"id":"6c2876f40383761e808cd58d60cffea601383397","message":"fix(api): 看板与核销的查询参数加边界,非法值 400 而不是 500 或静默兜底\n\n- 新增 lib/query.ts:intQuery / dateQuery / assertDateRange\n- /orders?limit 封顶 200(此前原样当 take 传给数据库,limit=100000000 即全表读取)\n- period 限 1–366;此前 period=999999999 让 /orders/top-deals、/metrics/funnel 直接 500\n- /metrics/daily 的 from / to:非法日期此前 500,现在 400;起止颠倒、跨度超过 366 天同样 400\n- 非数字、小数、负数、重复参数不再被悄悄换成默认值\n- 新增 r34 17 例;前端只传 7 / 30 且不传 limit,不受影响\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/6c2876f40383761e808cd58d60cffea601383397","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-03T09:21:01-07:00","added":["server/src/lib/query.ts","server/test/r34-query-bounds.test.ts"],"removed":[],"modified":["server/src/modules/metrics/routes.ts","server/src/modules/orders/routes.ts"]},{"id":"90523e8d28d9c250c555d78e0d56818117497df7","message":"feat(db): 金额 / 次数 / 名额的不变式下沉为数据库 CHECK 约束\n\n- 新迁移 20261003161609_data_integrity_checks:21 条 CHECK,覆盖钱包余额与流水方向、次卡次数、拼团名额(不超卖)、\n 订单 / SKU / 门店价 / 投放 / 补救 / 竞品金额、资源容量与低消、预约时间范围\n- 应用层原本已用 zod + CAS 守着;这是第二道,应用 bug、脚本或手工 SQL 也写不进非法值\n- 迁移经 prisma migrate dev --create-only 生成后手写 SQL(Prisma schema 表达不了 CHECK);schema.prisma 无变化,migrate diff 无漂移\n- 现有种子与全量测试(55 文件 428 例)均不触发约束\n- WalletTxn 的 REFUND 方向不约束:schema 注释写记正、种子写记负、应用代码不写这一类型,口径待定\n- 新增 r33 18 例:绕过 API 直接写库,逐条验证被拒并点名约束\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/90523e8d28d9c250c555d78e0d56818117497df7","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-03T09:20:37-07:00","added":["server/prisma/migrations/20261003161609_data_integrity_checks/migration.sql","server/test/r33-data-integrity.test.ts"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"bd2d1f6a36311732377749ff7387004fa7eb6fe2","message":"docs: 真实实现治理第二批落文档——范围、问题与修法、数据层约束、验收与未做项\n\n- docs/real-implementation-governance-batch2-2026-10-03.md:本批记录\n- 开发计划 v1.8 表补「第二批」行与指针;项目进展分析 07-01 数据层一节加订正\n- CLAUDE.md:查询参数走 lib/query.ts、状态变更必须 CAS、CHECK 约束迁移的做法、接口覆盖棘轮;规模数字 30 迁移 / 484 用例 / R0–R35\n- README / server README 数字同步\n- 治理经验库 G-014(量成功调用的接口)/ G-015(CAS 与同事务)/ G-016(不变式下沉数据库)\n- ygg-seed-migration-guard 技能补 CHECK 约束迁移的例外做法\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/bd2d1f6a36311732377749ff7387004fa7eb6fe2","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-03T09:38:15-07:00","added":["docs/real-implementation-governance-batch2-2026-10-03.md"],"removed":[],"modified":[".claude/skills/ygg-seed-migration-guard/SKILL.md","CLAUDE.md","README.md","server/README.md","开发计划.md","治理经验库.md","项目进展分析_2026-07-01.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":88503,"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-04T00:09:28+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
|
3
|
5
|
0
|
1791068467
|
0
|
1791068442
|
1791068467
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25156
|
docs: 记录真实实现治理第二批已并入 main 并推 Gitea
|
51
|
5
|
ci.yml
|
26
|
5
|
0
|
refs/heads/main
|
eec3099126197721a5d2437962c531943e5a90b1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bd2d1f6a36311732377749ff7387004fa7eb6fe2","after":"eec3099126197721a5d2437962c531943e5a90b1","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/bd2d1f6a36311732377749ff7387004fa7eb6fe2...eec3099126197721a5d2437962c531943e5a90b1","commits":[{"id":"eec3099126197721a5d2437962c531943e5a90b1","message":"docs: 记录真实实现治理第二批已并入 main 并推 Gitea\n\n快进合入,远端 main 读数 bd2d1f6 与本地一致;合入的树即验收时的树。原分支已删除,未部署。\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/eec3099126197721a5d2437962c531943e5a90b1","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:01:04-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-batch2-2026-10-03.md","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"eec3099126197721a5d2437962c531943e5a90b1","message":"docs: 记录真实实现治理第二批已并入 main 并推 Gitea\n\n快进合入,远端 main 读数 bd2d1f6 与本地一致;合入的树即验收时的树。原分支已删除,未部署。\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/eec3099126197721a5d2437962c531943e5a90b1","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:01:04-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-batch2-2026-10-03.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":88671,"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:00: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
|
3
|
5
|
0
|
1791070492
|
0
|
1791068467
|
1791070492
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25159
|
docs: 记录两条口径裁定及其落地——退款流水记正、装修实验任何状态可删
|
51
|
5
|
ci.yml
|
28
|
5
|
0
|
refs/heads/main
|
ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3
|
0
|
0
|
0
|
push
|
{"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"}}...
|
push
|
3
|
5
|
0
|
1791070515
|
0
|
1791070492
|
1791070515
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25161
|
docs: 记录口径裁定两项已并入 main 并推 Gitea
|
51
|
5
|
ci.yml
|
30
|
5
|
0
|
refs/heads/main
|
50f92bc0038f667e701d2a53120e2691a831f381
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3","after":"50f92bc0038f667e701d2a53120e2691a831f381","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ae09f6d0bf9de0927efc51dde6cd8acc4811c9b3...50f92bc0038f667e701d2a53120e2691a831f381","commits":[{"id":"50f92bc0038f667e701d2a53120e2691a831f381","message":"docs: 记录口径裁定两项已并入 main 并推 Gitea\n\n快进合入,远端 main 读数 ae09f6d 与本地一致;主检出里另一会话的在途改动未受影响。未部署。\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/50f92bc0038f667e701d2a53120e2691a831f381","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:35:11-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-batch2-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"50f92bc0038f667e701d2a53120e2691a831f381","message":"docs: 记录口径裁定两项已并入 main 并推 Gitea\n\n快进合入,远端 main 读数 ae09f6d 与本地一致;主检出里另一会话的在途改动未受影响。未部署。\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/50f92bc0038f667e701d2a53120e2691a831f381","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:35:11-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-batch2-2026-10-03.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":88802,"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:34:52+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
|
3
|
5
|
0
|
1791071298
|
0
|
1791070515
|
1791071298
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25164
|
merge: preserve approved refund governance alongsi merge: preserve approved refund governance alongside external integrations...
|
51
|
5
|
ci.yml
|
32
|
5
|
0
|
refs/heads/main
|
3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"50f92bc0038f667e701d2a53120e2691a831f381","after":"3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/50f92bc0038f667e701d2a53120e2691a831f381...3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2","commits":[{"id":"3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2","message":"merge: preserve approved refund governance alongside external integrations\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2","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:48:13-07:00","added":["server/prisma/migrations/20261003231916_wallet_refund_positive/migration.sql"],"removed":[],"modified":["CLAUDE.md","docs/external-integrations-2026-10-03.md","docs/real-implementation-governance-batch2-2026-10-03.md","server/README.md","server/prisma/seed.ts","server/src/modules/decor/abtest.ts","server/test/r33-data-integrity.test.ts","server/test/r35-uncovered-writes.test.ts","开发计划.md","治理经验库.md","真实链路与状态机审计矩阵.md"]},{"id":"06920096ee8e9d4502e10f2e6c941485ef20f3d0","message":"fix(integrations): guard payment amounts and finalize protocol regression coverage\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/06920096ee8e9d4502e10f2e6c941485ef20f3d0","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:43:36-07:00","added":["server/prisma/migrations/20261003233431_wechat_payment_amount_checks/migration.sql"],"removed":[],"modified":["CLAUDE.md","README.md","docs/external-integrations-2026-10-03.md","docs/loop-engineering/acceptance-checklist.md","docs/loop-engineering/api-contract.md","docs/reports/production-capability-truth-matrix-2026-06-12.md","server/.env.example","server/README.md","server/src/adapters/ai/real.ts","server/src/modules/platforms/service.ts","server/test/ai-real-http.unit.test.ts","server/test/helpers.ts","server/test/r30-platform-http-integrity.test.ts","server/test/r33-data-integrity.test.ts","server/test/r36-wechat-native.test.ts","server/test/route-coverage.baseline.json","团购本地生活AI运营App/README.md","开发计划.md","治理经验库.md","真实链路与状态机审计矩阵.md"]},{"id":"ea791b4795fec986c2a985d5ac1c68f26b4fce9f","message":"Merge branch 'main' into codex/external-integrations-20261003\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ea791b4795fec986c2a985d5ac1c68f26b4fce9f","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:31:04-07:00","added":["docs/real-implementation-governance-batch2-2026-10-03.md","server/prisma/migrations/20261003161609_data_integrity_checks/migration.sql","server/scripts/route-coverage.mjs","server/src/lib/query.ts","server/test/r31-leads.test.ts","server/test/r32-resources.test.ts","server/test/r33-data-integrity.test.ts","server/test/r34-query-bounds.test.ts","server/test/r35-uncovered-writes.test.ts","server/test/route-coverage.baseline.json"],"removed":[],"modified":[".claude/skills/ygg-seed-migration-guard/SKILL.md",".gitignore","CLAUDE.md","README.md","server/README.md","server/package.json","server/src/modules/booking/service.ts","server/src/modules/leads/service.ts","server/src/modules/metrics/routes.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/orders/routes.ts","server/src/modules/resources/schema.ts","server/src/modules/store/schema.ts","server/src/modules/wallet/service.ts","server/test/helpers.ts","开发计划.md","治理经验库.md","项目进展分析_2026-07-01.md"]},{"id":"a0d31127ccede37badd24d82386f64b5b4fef95a","message":"feat(integrations): add verified WeChat Native topups and bounded AI/platform transport\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/a0d31127ccede37badd24d82386f64b5b4fef95a","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:31:04-07:00","added":["docs/external-integrations-2026-10-03.md","e2e/tests/07-payment-topup.spec.ts","server/prisma/migrations/20261003231027_wechat_native_topups/migration.sql","server/src/adapters/payment/wechatpay.ts","server/src/lib/external-http.ts","server/src/modules/payments/routes.ts","server/src/modules/payments/schema.ts","server/src/modules/payments/service.ts","server/test/ai-real-http.unit.test.ts","server/test/external-http.unit.test.ts","server/test/payment-contract.unit.test.ts","server/test/r36-wechat-native.test.ts","server/test/wechatpay.unit.test.ts"],"removed":[],"modified":["e2e/package.json","server/.env.example","server/package-lock.json","server/package.json","server/prisma/schema.prisma","server/src/adapters/ai/real.ts","server/src/adapters/ocr/vision.ts","server/src/adapters/platform/http.ts","server/src/app.ts","server/src/config/env.ts","server/src/index.ts","server/src/lib/errors.ts","server/src/middleware/request-log.ts","server/src/modules/platforms/service.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/ai-provider.unit.test.ts","server/test/env-production-guard.unit.test.ts","server/test/ocr-provider.unit.test.ts","server/test/platform-adapter.unit.test.ts","server/test/platform-ingest-integrity.unit.test.ts","server/test/request-log.unit.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2","message":"merge: preserve approved refund governance alongside external integrations\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2","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:48:13-07:00","added":["server/prisma/migrations/20261003231916_wallet_refund_positive/migration.sql"],"removed":[],"modified":["CLAUDE.md","docs/external-integrations-2026-10-03.md","docs/real-implementation-governance-batch2-2026-10-03.md","server/README.md","server/prisma/seed.ts","server/src/modules/decor/abtest.ts","server/test/r33-data-integrity.test.ts","server/test/r35-uncovered-writes.test.ts","开发计划.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":88810,"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:35: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
|
3
|
5
|
0
|
1791071397
|
0
|
1791071298
|
1791071397
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25166
|
docs: record verified integrations and cloud-main docs: record verified integrations and cloud-main synchronization boundaries...
|
51
|
5
|
ci.yml
|
34
|
5
|
0
|
refs/heads/main
|
c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2","after":"c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/3c9ccff1ba6415660a29cb99c8a4b4b1ce6eccc2...c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb","commits":[{"id":"c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb","message":"docs: record verified integrations and cloud-main synchronization boundaries\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb","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:49:53-07:00","added":[],"removed":[],"modified":["docs/external-integrations-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb","message":"docs: record verified integrations and cloud-main synchronization boundaries\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb","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:49:53-07:00","added":[],"removed":[],"modified":["docs/external-integrations-2026-10-03.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":89160,"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:48:18+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
|
3
|
5
|
0
|
1791071672
|
0
|
1791071397
|
1791071672
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25168
|
merge: 并入本地 main 的文档订正(约束条数 21 → 18、开发库应用记录)
|
51
|
5
|
ci.yml
|
36
|
5
|
0
|
refs/heads/main
|
ee7e038fc69366df08ed6e33d0c64b391e68169f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb","after":"ee7e038fc69366df08ed6e33d0c64b391e68169f","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c847b8b9be80c7c5cef0f97d9c9838442e1cb2cb...ee7e038fc69366df08ed6e33d0c64b391e68169f","commits":[{"id":"ee7e038fc69366df08ed6e33d0c64b391e68169f","message":"merge: 并入本地 main 的文档订正(约束条数 21 → 18、开发库应用记录)\n\n远端 main 在本地提交 ab1252f 之后又进了外部对接的提交,两边分叉。合并而不变基,双方提交 SHA 不变。\n\n- 唯一冲突在 治理经验库.md 末尾:远端在 G-016 之后追加了 G-017 / G-018,本地订正了 G-016 的证据行。保留远端追加的内容,并应用订正\n- docs/external-integrations-2026-10-03.md 引用的「21 条约束」同样订正为 18(该数字出自第二批记录的错误)\n- 第二批记录补一句:开发库已一并应用外部对接的两个迁移,现为 33 个迁移、26 条 CHECK 全部已校验\n\n相对 origin/main 只改文档,不含代码。\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/ee7e038fc69366df08ed6e33d0c64b391e68169f","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:52:57-07:00","added":[],"removed":[],"modified":["docs/external-integrations-2026-10-03.md","docs/real-implementation-governance-batch2-2026-10-03.md","开发计划.md","治理经验库.md","项目进展分析_2026-07-01.md"]},{"id":"ab1252fb4af1376318a11cef1dc94bee26bce682","message":"docs: 订正约束条数(21 → 18),记录开发库已应用迁移并重新灌种子\n\n- 第一批完整性迁移实际新增 18 条 CHECK 约束;此前写作 21,是把库里别处的约束一并数了进去。四处文档同步订正\n- 其中门店价非负一条与 20260603223000 迁移里已有的 StoreSkuPrice_priceCents_nonnegative 同义,属重复,无害,如实记下\n- 开发库(yggdrasil-colima 数据卷)2026-10-03 已应用 31 个迁移并重新灌种子:先整库备份;public 下 23 条 CHECK 全部已校验;余额等于流水之和;当前代码连库 /health 200、可登录\n\n开发计划.md 与 治理经验库.md 另有并行会话未提交的在途改动,本提交只含上述订正那一行,不带它们的内容。\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/ab1252fb4af1376318a11cef1dc94bee26bce682","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:48:01-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-batch2-2026-10-03.md","开发计划.md","治理经验库.md","项目进展分析_2026-07-01.md"]}],"total_commits":0,"head_commit":{"id":"ee7e038fc69366df08ed6e33d0c64b391e68169f","message":"merge: 并入本地 main 的文档订正(约束条数 21 → 18、开发库应用记录)\n\n远端 main 在本地提交 ab1252f 之后又进了外部对接的提交,两边分叉。合并而不变基,双方提交 SHA 不变。\n\n- 唯一冲突在 治理经验库.md 末尾:远端在 G-016 之后追加了 G-017 / G-018,本地订正了 G-016 的证据行。保留远端追加的内容,并应用订正\n- docs/external-integrations-2026-10-03.md 引用的「21 条约束」同样订正为 18(该数字出自第二批记录的错误)\n- 第二批记录补一句:开发库已一并应用外部对接的两个迁移,现为 33 个迁移、26 条 CHECK 全部已校验\n\n相对 origin/main 只改文档,不含代码。\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/ee7e038fc69366df08ed6e33d0c64b391e68169f","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:52:57-07:00","added":[],"removed":[],"modified":["docs/external-integrations-2026-10-03.md","docs/real-implementation-governance-batch2-2026-10-03.md","开发计划.md","治理经验库.md","项目进展分析_2026-07-01.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":89172,"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:49:57+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
|
3
|
5
|
0
|
1791072563
|
0
|
1791071672
|
1791072563
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25171
|
merge: preserve synchronized deployment and constr merge: preserve synchronized deployment and constraint records...
|
51
|
5
|
ci.yml
|
38
|
5
|
0
|
refs/heads/main
|
a244264ab360d733e9cdc0bd5573a49bc6e7a570
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ee7e038fc69366df08ed6e33d0c64b391e68169f","after":"a244264ab360d733e9cdc0bd5573a49bc6e7a570","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ee7e038fc69366df08ed6e33d0c64b391e68169f...a244264ab360d733e9cdc0bd5573a49bc6e7a570","commits":[{"id":"a244264ab360d733e9cdc0bd5573a49bc6e7a570","message":"merge: preserve synchronized deployment and constraint records\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/a244264ab360d733e9cdc0bd5573a49bc6e7a570","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-03T17:09:19-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-batch2-2026-10-03.md"]},{"id":"cff582baff68de685f6a7fc797447145ecfe064a","message":"merge: complete module governance with native payments and guarded automation\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/cff582baff68de685f6a7fc797447145ecfe064a","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-03T17:08:57-07:00","added":["docs/deployments/missing-module-local-2026-10-03.md","docs/external-integrations-2026-10-03.md","e2e/tests/07-payment-topup.spec.ts","server/prisma/migrations/20261003231027_wechat_native_topups/migration.sql","server/prisma/migrations/20261003233431_wechat_payment_amount_checks/migration.sql","server/src/adapters/payment/wechatpay.ts","server/src/lib/automation-lock.ts","server/src/lib/external-http.ts","server/src/modules/payments/routes.ts","server/src/modules/payments/schema.ts","server/src/modules/payments/service.ts","server/test/ai-real-http.unit.test.ts","server/test/external-http.unit.test.ts","server/test/payment-contract.unit.test.ts","server/test/r36-wechat-native.test.ts","server/test/r40-automation-lock.test.ts","server/test/wechatpay.unit.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","docs/loop-engineering/acceptance-checklist.md","docs/loop-engineering/api-contract.md","docs/missing-module-governance-2026-10-03.md","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/package.json","e2e/tests/07-governance.spec.ts","scripts/docs-metrics.mjs","server/.env.example","server/README.md","server/package-lock.json","server/package.json","server/prisma/schema.prisma","server/src/adapters/ai/real.ts","server/src/adapters/competitor/vendor.ts","server/src/adapters/ocr/vision.ts","server/src/adapters/platform/http.ts","server/src/adapters/weather/index.ts","server/src/app.ts","server/src/config/env.ts","server/src/index.ts","server/src/lib/errors.ts","server/src/middleware/request-log.ts","server/src/modules/automation-runner/service.ts","server/src/modules/billing/service.ts","server/src/modules/campaigns/service.ts","server/src/modules/operations/notifications.ts","server/src/modules/platforms/service.ts","server/src/modules/pricing/service.ts","server/src/modules/reviews/service.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/ai-provider.unit.test.ts","server/test/env-production-guard.unit.test.ts","server/test/external-data-adapters.unit.test.ts","server/test/helpers.ts","server/test/ocr-provider.unit.test.ts","server/test/platform-adapter.unit.test.ts","server/test/platform-ingest-integrity.unit.test.ts","server/test/r30-platform-http-integrity.test.ts","server/test/r33-data-integrity.test.ts","server/test/request-log.unit.test.ts","server/test/route-coverage.baseline.json","团购本地生活AI运营App/README.md","团购本地生活AI运营App/api.js","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.md","治理经验库.md","真实链路与状态机审计矩阵.md"]},{"id":"8b6616eb0a800d4478bb8e3d2038c33d7f8914a4","message":"feat: govern missing identity billing and durable operations modules\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/8b6616eb0a800d4478bb8e3d2038c33d7f8914a4","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:52:38-07:00","added":["docs/contracts/billing-governance.md","docs/contracts/external-data-adapters.md","docs/contracts/identity-governance.md","docs/contracts/operational-governance.md","docs/missing-module-governance-2026-10-03.md","e2e/tests/07-governance.spec.ts","server/prisma/migrations/20261003233848_missing_module_governance/migration.sql","server/src/adapters/competitor/vendor.ts","server/src/middleware/entitlement.ts","server/src/modules/billing/routes.ts","server/src/modules/billing/schema.ts","server/src/modules/billing/service.ts","server/src/modules/operations/notifications.ts","server/src/modules/operations/routes.ts","server/src/modules/operations/schema.ts","server/src/modules/operations/service.ts","server/src/modules/support/routes.ts","server/src/modules/support/schema.ts","server/src/modules/support/service.ts","server/src/modules/team/routes.ts","server/src/modules/team/schema.ts","server/src/modules/team/service.ts","server/test/external-data-adapters.unit.test.ts","server/test/r36-identity.test.ts","server/test/r37-billing.test.ts","server/test/r38-operations.test.ts","server/test/r39-entitlement.test.ts","团购本地生活AI运营App/scripts/test-auth-governance.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","e2e/utils/app.ts","server/.env.example","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/adapters/competitor/index.ts","server/src/adapters/competitor/manual.ts","server/src/adapters/competitor/provider.ts","server/src/adapters/weather/index.ts","server/src/app.ts","server/src/config/env.ts","server/src/index.ts","server/src/middleware/auth.ts","server/src/middleware/request-log.ts","server/src/modules/auth/routes.ts","server/src/modules/auth/schema.ts","server/src/modules/auth/service.ts","server/src/modules/automation-runner/service.ts","server/src/modules/briefing/service.ts","server/src/modules/leads/service.ts","server/src/modules/ops/service.ts","server/src/modules/periphery/competitor-intel.ts","server/src/modules/store/routes.ts","server/src/modules/store/service.ts","server/src/modules/subscription/service.ts","server/src/modules/tasks/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/request-log.unit.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]}],"total_commits":0,"head_commit":{"id":"a244264ab360d733e9cdc0bd5573a49bc6e7a570","message":"merge: preserve synchronized deployment and constraint records\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/a244264ab360d733e9cdc0bd5573a49bc6e7a570","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-03T17:09:19-07:00","added":[],"removed":[],"modified":["docs/real-implementation-governance-batch2-2026-10-03.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":89258,"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:54: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
|
3
|
5
|
0
|
1791073270
|
0
|
1791072563
|
1791073270
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25173
|
fix: label unverified AI connections and demo entr fix: label unverified AI connections and demo entry metrics...
|
51
|
5
|
ci.yml
|
40
|
5
|
0
|
refs/heads/main
|
e4707f5103774002317675ea148dbd5f8b89c599
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a244264ab360d733e9cdc0bd5573a49bc6e7a570","after":"e4707f5103774002317675ea148dbd5f8b89c599","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/a244264ab360d733e9cdc0bd5573a49bc6e7a570...e4707f5103774002317675ea148dbd5f8b89c599","commits":[{"id":"e4707f5103774002317675ea148dbd5f8b89c599","message":"fix: label unverified AI connections and demo entry metrics\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/e4707f5103774002317675ea148dbd5f8b89c599","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-03T17:21:06-07:00","added":[],"removed":[],"modified":["docs/deployments/missing-module-local-2026-10-03.md","docs/external-integrations-2026-10-03.md","docs/missing-module-governance-2026-10-03.md","e2e/playwright.config.ts","e2e/tests/07-governance.spec.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"e4707f5103774002317675ea148dbd5f8b89c599","message":"fix: label unverified AI connections and demo entry metrics\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/e4707f5103774002317675ea148dbd5f8b89c599","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-03T17:21:06-07:00","added":[],"removed":[],"modified":["docs/deployments/missing-module-local-2026-10-03.md","docs/external-integrations-2026-10-03.md","docs/missing-module-governance-2026-10-03.md","e2e/playwright.config.ts","e2e/tests/07-governance.spec.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/screens-ai.jsx","团购本地生活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":89826,"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-04T08:09:23+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
|
3
|
5
|
0
|
1791073468
|
0
|
1791073270
|
1791073468
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25175
|
docs(文档): 全面对齐代码能力、模块缺口与验收边界
|
57
|
5
|
governance.yml
|
232
|
5
|
0
|
refs/heads/main
|
97b54992f7880ee6f10ef4ae67f73088999b3794
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5","after":"97b54992f7880ee6f10ef4ae67f73088999b3794","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/c8b1f1ca65ef4bfa8a4a6181b6682c7edcda3de5...97b54992f7880ee6f10ef4ae67f73088999b3794","commits":[{"id":"97b54992f7880ee6f10ef4ae67f73088999b3794","message":"docs(文档): 全面对齐代码能力、模块缺口与验收边界\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/97b54992f7880ee6f10ef4ae67f73088999b3794","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-03T17:23:23-07:00","added":["docs/governance/archive/README.md","docs/governance/log/2026-10-03-documentation-refresh.md","docs/product/module-gaps-2026-10-03.md","reports/documentation-refresh-2026-10-03/README.md","reports/documentation-refresh-2026-10-03/governance-docs.txt","reports/documentation-refresh-2026-10-03/governance.txt","reports/documentation-refresh-2026-10-03/history/pro-video-platform-progress.md","reports/documentation-refresh-2026-10-03/source-evidence.json","reports/documentation-refresh-2026-10-03/validate-documentation.py","reports/documentation-refresh-2026-10-03/validation.json"],"removed":[],"modified":["CLAUDE.md","README.md","docs/README.md","docs/admin-multitenancy.md","docs/adr/README.md","docs/architecture.md","docs/browser-enterprise-login.md","docs/dependency-overrides.md","docs/deploy-vm.md","docs/design/full-uiux-2026-09-05/01-information-architecture.md","docs/design/full-uiux-2026-09-05/02-interaction-spec.md","docs/design/full-uiux-2026-09-05/03-design-system.md","docs/design/full-uiux-2026-09-05/04-page-blueprints.md","docs/design/full-uiux-2026-09-05/05-visual-concepts.md","docs/design/full-uiux-2026-09-05/06-mobile-app-architecture.md","docs/design/full-uiux-2026-09-05/07-mobile-app-interactions.md","docs/design/full-uiux-2026-09-05/08-mobile-visual-concepts.md","docs/design/full-uiux-2026-09-05/09-real-project-integration.md","docs/design/full-uiux-2026-09-05/10-content-step-details.md","docs/design/full-uiux-2026-09-05/README.md","docs/design/full-uiux-2026-09-05/mobile-prompts.md","docs/design/platform-admin.md","docs/design/workspace-experience.md","docs/development-experience/README.md","docs/development-experience/evidence.md","docs/development-experience/playbook.md","docs/domain-glossary.md","docs/domain/material-production-blueprint.md","docs/domain/module-boundary.md","docs/domain/owner-matrix.md","docs/github-mirror.md","docs/model-credentials.md","docs/product/acceptance-and-status.md","docs/product/advanced-image-skills.md","docs/product/ai-video-edit.md","docs/product/brand-identity.md","docs/product/business-blueprint-2026-09-05.md","docs/product/content-creation-workbench.md","docs/product/controlled-ai-material-factory.md","docs/product/creative-pipeline-design.md","docs/product/creative-stage-outcomes.md","docs/product/creative-workflow-analysis.md","docs/product/industry-trends.md","docs/product/platform-module-map.md","docs/product/pro-video-platform-gap-analysis.md","docs/product/pro-video-platform-progress.md","docs/product/product-experience-blueprint.md","docs/product/shijie-v1/视界V1完整方案书.md","docs/project-history.md","docs/releases/current.md","docs/shijie-design-runbook.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","docs/视频和图片流程优化清单.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/render-job-drainability.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"]},{"id":"0a643c4cf792e2e0219b8341c25bc1e442235610","message":"fix(compose): 开发基座补顶层 name,停止与另外六个仓共用 project `api-nestjs`\n\n本文件没有顶层 name,compose 便按**所在目录名**推导 project 名。它在每个仓里的路径都是\napps/api-nestjs/,于是 7 个仓推导出同一个 `api-nestjs`,共用 `api-nestjs_pgdata` /\n`_redisdata` 与同名容器——后 up 的那个直接接管先起者的容器与卷。这类冲突单仓内部永远\n判不出来,只有横着比多份 compose 才看得见,已经咬过一次(C-15)。\n\n现改为 `name: ${COMPOSE_PROJECT_NAME:-image-generation}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`image-generation_*`。\n\n数据风险已先核过再改:本机 260 个卷里**没有任何 `api-nestjs_*`**,\n`docker ps -a --filter label=com.docker.compose.project=api-nestjs` 零命中——\n这份 compose 在本机从未以默认推导名起过,没有旧卷需要迁移。(只证明本机;\n别的机器若直接 up 过,改名后首次 up 会建新空卷,旧卷需自行迁移。)\n\n工作区门禁 `平台治理/基础/scripts/check-workspace-consistency.mjs` 的\nL9 COMPOSE_PROJECT_COLLISION 在 7 个仓全部补齐后由 ISSUES 转 CLEAN(exit 0,0 issues)。\n处置依据:裁决 N-11 选项 ①。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0a643c4cf792e2e0219b8341c25bc1e442235610","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-18T19:13:32-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"97b54992f7880ee6f10ef4ae67f73088999b3794","message":"docs(文档): 全面对齐代码能力、模块缺口与验收边界\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/97b54992f7880ee6f10ef4ae67f73088999b3794","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-03T17:23:23-07:00","added":["docs/governance/archive/README.md","docs/governance/log/2026-10-03-documentation-refresh.md","docs/product/module-gaps-2026-10-03.md","reports/documentation-refresh-2026-10-03/README.md","reports/documentation-refresh-2026-10-03/governance-docs.txt","reports/documentation-refresh-2026-10-03/governance.txt","reports/documentation-refresh-2026-10-03/history/pro-video-platform-progress.md","reports/documentation-refresh-2026-10-03/source-evidence.json","reports/documentation-refresh-2026-10-03/validate-documentation.py","reports/documentation-refresh-2026-10-03/validation.json"],"removed":[],"modified":["CLAUDE.md","README.md","docs/README.md","docs/admin-multitenancy.md","docs/adr/README.md","docs/architecture.md","docs/browser-enterprise-login.md","docs/dependency-overrides.md","docs/deploy-vm.md","docs/design/full-uiux-2026-09-05/01-information-architecture.md","docs/design/full-uiux-2026-09-05/02-interaction-spec.md","docs/design/full-uiux-2026-09-05/03-design-system.md","docs/design/full-uiux-2026-09-05/04-page-blueprints.md","docs/design/full-uiux-2026-09-05/05-visual-concepts.md","docs/design/full-uiux-2026-09-05/06-mobile-app-architecture.md","docs/design/full-uiux-2026-09-05/07-mobile-app-interactions.md","docs/design/full-uiux-2026-09-05/08-mobile-visual-concepts.md","docs/design/full-uiux-2026-09-05/09-real-project-integration.md","docs/design/full-uiux-2026-09-05/10-content-step-details.md","docs/design/full-uiux-2026-09-05/README.md","docs/design/full-uiux-2026-09-05/mobile-prompts.md","docs/design/platform-admin.md","docs/design/workspace-experience.md","docs/development-experience/README.md","docs/development-experience/evidence.md","docs/development-experience/playbook.md","docs/domain-glossary.md","docs/domain/material-production-blueprint.md","docs/domain/module-boundary.md","docs/domain/owner-matrix.md","docs/github-mirror.md","docs/model-credentials.md","docs/product/acceptance-and-status.md","docs/product/advanced-image-skills.md","docs/product/ai-video-edit.md","docs/product/brand-identity.md","docs/product/business-blueprint-2026-09-05.md","docs/product/content-creation-workbench.md","docs/product/controlled-ai-material-factory.md","docs/product/creative-pipeline-design.md","docs/product/creative-stage-outcomes.md","docs/product/creative-workflow-analysis.md","docs/product/industry-trends.md","docs/product/platform-module-map.md","docs/product/pro-video-platform-gap-analysis.md","docs/product/pro-video-platform-progress.md","docs/product/product-experience-blueprint.md","docs/product/shijie-v1/视界V1完整方案书.md","docs/project-history.md","docs/releases/current.md","docs/shijie-design-runbook.md","docs/standards/api-standard.md","docs/standards/backend-standard.md","docs/standards/database-standard.md","docs/standards/frontend-standard.md","docs/standards/git-standard.md","docs/standards/naming-standard.md","docs/standards/review-standard.md","docs/视频和图片流程优化清单.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/render-job-drainability.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":979705,"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":42,"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-17T13:39: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":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
|
3
|
3
|
0
|
1791073478
|
0
|
1791073426
|
1791073478
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25176
|
docs: record final module governance verification docs: record final module governance verification and local release...
|
51
|
5
|
ci.yml
|
42
|
5
|
0
|
refs/heads/main
|
ca4022d7692cfbd6b667348aae3bc4697fe523ca
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"e4707f5103774002317675ea148dbd5f8b89c599","after":"ca4022d7692cfbd6b667348aae3bc4697fe523ca","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/e4707f5103774002317675ea148dbd5f8b89c599...ca4022d7692cfbd6b667348aae3bc4697fe523ca","commits":[{"id":"ca4022d7692cfbd6b667348aae3bc4697fe523ca","message":"docs: record final module governance verification and local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ca4022d7692cfbd6b667348aae3bc4697fe523ca","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-03T17:24:26-07:00","added":[],"removed":[],"modified":["docs/deployments/missing-module-local-2026-10-03.md","docs/external-integrations-2026-10-03.md","docs/missing-module-governance-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"ca4022d7692cfbd6b667348aae3bc4697fe523ca","message":"docs: record final module governance verification and local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ca4022d7692cfbd6b667348aae3bc4697fe523ca","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-03T17:24:26-07:00","added":[],"removed":[],"modified":["docs/deployments/missing-module-local-2026-10-03.md","docs/external-integrations-2026-10-03.md","docs/missing-module-governance-2026-10-03.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":89960,"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-04T08:21:10+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
|
3
|
5
|
0
|
1791074440
|
0
|
1791073468
|
1791074440
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25178
|
docs(文档): 记录主分支同步与工作区验证结果
|
57
|
5
|
governance.yml
|
233
|
5
|
0
|
refs/heads/main
|
4cadfe25a137afa7cb8681d66c07bba53dac99c2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"97b54992f7880ee6f10ef4ae67f73088999b3794","after":"4cadfe25a137afa7cb8681d66c07bba53dac99c2","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/97b54992f7880ee6f10ef4ae67f73088999b3794...4cadfe25a137afa7cb8681d66c07bba53dac99c2","commits":[{"id":"4cadfe25a137afa7cb8681d66c07bba53dac99c2","message":"docs(文档): 记录主分支同步与工作区验证结果\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4cadfe25a137afa7cb8681d66c07bba53dac99c2","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-03T17:24:25-07:00","added":["reports/documentation-refresh-2026-10-03/sync.json","reports/documentation-refresh-2026-10-03/workspace-comparison.json"],"removed":[],"modified":["docs/governance/log/2026-10-03-documentation-refresh.md","reports/documentation-refresh-2026-10-03/README.md","reports/documentation-refresh-2026-10-03/validate-documentation.py","reports/documentation-refresh-2026-10-03/validation.json","reports/governance-docs.latest.json"]}],"total_commits":0,"head_commit":{"id":"4cadfe25a137afa7cb8681d66c07bba53dac99c2","message":"docs(文档): 记录主分支同步与工作区验证结果\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4cadfe25a137afa7cb8681d66c07bba53dac99c2","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-03T17:24:25-07:00","added":["reports/documentation-refresh-2026-10-03/sync.json","reports/documentation-refresh-2026-10-03/workspace-comparison.json"],"removed":[],"modified":["docs/governance/log/2026-10-03-documentation-refresh.md","reports/documentation-refresh-2026-10-03/README.md","reports/documentation-refresh-2026-10-03/validate-documentation.py","reports/documentation-refresh-2026-10-03/validation.json","reports/governance-docs.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":980191,"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":42,"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-10-04T08:23: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
|
3
|
3
|
0
|
1791081298
|
0
|
1791073478
|
1791081298
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25179
|
feat(fission): 裂变屏补开团、代客参团、成员详情与转介绍绑定 / 手动发奖入口
|
51
|
5
|
ci.yml
|
44
|
5
|
0
|
refs/heads/main
|
eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ca4022d7692cfbd6b667348aae3bc4697fe523ca","after":"eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ca4022d7692cfbd6b667348aae3bc4697fe523ca...eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9","commits":[{"id":"eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9","message":"feat(fission): 裂变屏补开团、代客参团、成员详情与转介绍绑定 / 手动发奖入口\n\n后端 /group-buys 与 /referrals 的写接口早已就绪并有并发防护,但裂变屏只调了\n列表、结算、退回三个接口,开团、参团、绑定邀请关系、手动发奖都没有界面入口。\n本次只动前端,不改后端与 api.js(五个方法原本就在)。\n\n- 发起拼团:选在售套餐、成团人数、团价、团名、奖励方式、招募有效期、可选团长;\n 校验口径同后端 createGroupBuySchema,非法值在页面拦下不发请求\n- 代客参团:招募中的团可替到店会员占名额,已在团内的会员不出现在选项里;\n 已过截止时间的团不再放行参团(后端目前不校验截止时间,见下)\n- 成员详情:展开时取 /group-buys/:id 的最新成员、团长与获奖标记、各时间点\n- 绑定邀请关系:邀请人 / 被邀人下拉,已选邀请人与已绑定过的会员不可选作被邀人\n- 手动发放转介绍奖励:列出被邀人的已核销订单作为首单凭据,没有则说明原因并禁用\n- 权限同后端 requireRole:店员只见代客参团与绑定,不见开团 / 结算 / 退回 / 发奖\n- 会员、套餐下拉在首次打开表单时才加载;加载失败明示,不显示成「暂无」\n- 写操作防重复提交;成功与失败后都重新拉列表;结果提示固定在视口内\n- 离线样例模式表单可打开,提交只提示、不发请求\n\n验证(一次性 PG + 本分支自起的后端与静态服,桌面 + 手机两个浏览器项目):\n- 前端 npm test / lint / build 通过\n- e2e 新增 4 条深度流程:开团到结算、绑定与无首单不可发奖、凭已核销订单手动发奖、\n 店员入口可见性\n- 基线 a244264 上全量 150 条:147 通过、1 条按设计跳过(种子里可手动发奖的那一对\n 同库只能发一次,第二个浏览器项目跳过)、2 条失败为 07-governance 自助注册用例缺\n ENABLE_SELF_REGISTRATION 开关,主线随后在 e4707f5 的 Playwright 配置里补上\n- rebase 到 ca4022d 后重跑深度流程 + 裂变冒烟 + 注册用例共 24 条:23 通过、\n 1 条按设计跳过;未在 ca4022d 上重跑全量\n\n未做(已另行登记):奖励券码无接口可查、后端不校验拼团截止时间也不自动过期、\n储值赠金团在获奖人无钱包时卡在已满员、团价无上限。\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/eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9","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-03T17:17:45-07:00","added":[],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-fission.jsx"]}],"total_commits":0,"head_commit":{"id":"eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9","message":"feat(fission): 裂变屏补开团、代客参团、成员详情与转介绍绑定 / 手动发奖入口\n\n后端 /group-buys 与 /referrals 的写接口早已就绪并有并发防护,但裂变屏只调了\n列表、结算、退回三个接口,开团、参团、绑定邀请关系、手动发奖都没有界面入口。\n本次只动前端,不改后端与 api.js(五个方法原本就在)。\n\n- 发起拼团:选在售套餐、成团人数、团价、团名、奖励方式、招募有效期、可选团长;\n 校验口径同后端 createGroupBuySchema,非法值在页面拦下不发请求\n- 代客参团:招募中的团可替到店会员占名额,已在团内的会员不出现在选项里;\n 已过截止时间的团不再放行参团(后端目前不校验截止时间,见下)\n- 成员详情:展开时取 /group-buys/:id 的最新成员、团长与获奖标记、各时间点\n- 绑定邀请关系:邀请人 / 被邀人下拉,已选邀请人与已绑定过的会员不可选作被邀人\n- 手动发放转介绍奖励:列出被邀人的已核销订单作为首单凭据,没有则说明原因并禁用\n- 权限同后端 requireRole:店员只见代客参团与绑定,不见开团 / 结算 / 退回 / 发奖\n- 会员、套餐下拉在首次打开表单时才加载;加载失败明示,不显示成「暂无」\n- 写操作防重复提交;成功与失败后都重新拉列表;结果提示固定在视口内\n- 离线样例模式表单可打开,提交只提示、不发请求\n\n验证(一次性 PG + 本分支自起的后端与静态服,桌面 + 手机两个浏览器项目):\n- 前端 npm test / lint / build 通过\n- e2e 新增 4 条深度流程:开团到结算、绑定与无首单不可发奖、凭已核销订单手动发奖、\n 店员入口可见性\n- 基线 a244264 上全量 150 条:147 通过、1 条按设计跳过(种子里可手动发奖的那一对\n 同库只能发一次,第二个浏览器项目跳过)、2 条失败为 07-governance 自助注册用例缺\n ENABLE_SELF_REGISTRATION 开关,主线随后在 e4707f5 的 Playwright 配置里补上\n- rebase 到 ca4022d 后重跑深度流程 + 裂变冒烟 + 注册用例共 24 条:23 通过、\n 1 条按设计跳过;未在 ca4022d 上重跑全量\n\n未做(已另行登记):奖励券码无接口可查、后端不校验拼团截止时间也不自动过期、\n储值赠金团在获奖人无钱包时卡在已满员、团价无上限。\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/eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9","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-03T17:17:45-07:00","added":[],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-fission.jsx"]},"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":89987,"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-04T08:24: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
|
3
|
5
|
0
|
1791075933
|
0
|
1791074440
|
1791075933
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25184
|
feat: implement consumer self-service and live mar feat: implement consumer self-service and live market IoT modules...
|
51
|
5
|
ci.yml
|
46
|
5
|
0
|
refs/heads/main
|
4e729d975177f19aff25f2005c586e995aafe556
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9","after":"4e729d975177f19aff25f2005c586e995aafe556","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/eccbba06b493fe3de7a10ea2522cd8ca9fd09bc9...4e729d975177f19aff25f2005c586e995aafe556","commits":[{"id":"4e729d975177f19aff25f2005c586e995aafe556","message":"feat: implement consumer self-service and live market IoT modules\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/4e729d975177f19aff25f2005c586e995aafe556","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-03T18:05:29-07:00","added":["docs/contracts/consumer-self-service.md","docs/contracts/iot-protocol.md","docs/contracts/live-market.md","docs/deployments/real-modules-local-2026-10-03.md","docs/real-module-completion-2026-10-03.md","e2e/tests/09-real-modules.spec.ts","server/prisma/migrations/20261004003250_real_consumer_live_market_iot/migration.sql","server/src/lib/consumer-token.ts","server/src/middleware/consumer-auth.ts","server/src/modules/consumer/routes.ts","server/src/modules/consumer/schema.ts","server/src/modules/consumer/service.ts","server/src/modules/iot/routes.ts","server/src/modules/iot/schema.ts","server/src/modules/iot/service.ts","server/src/modules/live/routes.ts","server/src/modules/live/schema.ts","server/src/modules/live/service.ts","server/src/modules/market/routes.ts","server/src/modules/market/schema.ts","server/src/modules/market/service.ts","server/test/r41-consumer.test.ts","server/test/r42-live-market.test.ts","server/test/r43-iot.test.ts","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/screens-real-modules.jsx","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-consumer-static.mjs","团购本地生活AI运营App/scripts/test-real-modules.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/app.ts","server/src/middleware/request-log.ts","server/src/middleware/security.ts","server/src/modules/booking/service.ts","server/src/modules/ops/service.ts","server/src/modules/resources/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/r33-data-integrity.test.ts","团购本地生活AI运营App/README.md","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-live.jsx","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md"]}],"total_commits":0,"head_commit":{"id":"4e729d975177f19aff25f2005c586e995aafe556","message":"feat: implement consumer self-service and live market IoT modules\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/4e729d975177f19aff25f2005c586e995aafe556","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-03T18:05:29-07:00","added":["docs/contracts/consumer-self-service.md","docs/contracts/iot-protocol.md","docs/contracts/live-market.md","docs/deployments/real-modules-local-2026-10-03.md","docs/real-module-completion-2026-10-03.md","e2e/tests/09-real-modules.spec.ts","server/prisma/migrations/20261004003250_real_consumer_live_market_iot/migration.sql","server/src/lib/consumer-token.ts","server/src/middleware/consumer-auth.ts","server/src/modules/consumer/routes.ts","server/src/modules/consumer/schema.ts","server/src/modules/consumer/service.ts","server/src/modules/iot/routes.ts","server/src/modules/iot/schema.ts","server/src/modules/iot/service.ts","server/src/modules/live/routes.ts","server/src/modules/live/schema.ts","server/src/modules/live/service.ts","server/src/modules/market/routes.ts","server/src/modules/market/schema.ts","server/src/modules/market/service.ts","server/test/r41-consumer.test.ts","server/test/r42-live-market.test.ts","server/test/r43-iot.test.ts","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/screens-real-modules.jsx","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-consumer-static.mjs","团购本地生活AI运营App/scripts/test-real-modules.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/app.ts","server/src/middleware/request-log.ts","server/src/middleware/security.ts","server/src/modules/booking/service.ts","server/src/modules/ops/service.ts","server/src/modules/resources/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/r33-data-integrity.test.ts","团购本地生活AI运营App/README.md","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-live.jsx","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","尤克特拉产品设计PRD.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":90016,"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-04T08:40:40+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
|
3
|
5
|
0
|
1791076100
|
0
|
1791075933
|
1791076100
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25186
|
docs: record verified real-module tests and local docs: record verified real-module tests and local deployment...
|
51
|
5
|
ci.yml
|
48
|
5
|
0
|
refs/heads/main
|
d2c63f918ffbd04ed438448039a81bf97038aaf6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4e729d975177f19aff25f2005c586e995aafe556","after":"d2c63f918ffbd04ed438448039a81bf97038aaf6","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/4e729d975177f19aff25f2005c586e995aafe556...d2c63f918ffbd04ed438448039a81bf97038aaf6","commits":[{"id":"d2c63f918ffbd04ed438448039a81bf97038aaf6","message":"docs: record verified real-module tests and local deployment\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d2c63f918ffbd04ed438448039a81bf97038aaf6","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-03T18:08:16-07:00","added":[],"removed":[],"modified":["docs/deployments/real-modules-local-2026-10-03.md","docs/real-module-completion-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"d2c63f918ffbd04ed438448039a81bf97038aaf6","message":"docs: record verified real-module tests and local deployment\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d2c63f918ffbd04ed438448039a81bf97038aaf6","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-03T18:08:16-07:00","added":[],"removed":[],"modified":["docs/deployments/real-modules-local-2026-10-03.md","docs/real-module-completion-2026-10-03.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":90446,"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-04T09:05: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
|
3
|
5
|
0
|
1791077318
|
0
|
1791076100
|
1791077318
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25188
|
docs: record merged OAuth verification and align o docs: record merged OAuth verification and align operating guidance...
|
51
|
5
|
ci.yml
|
50
|
5
|
0
|
refs/heads/main
|
0746a1b10d72f6847a59544afe22685b2ab9a0dc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"d2c63f918ffbd04ed438448039a81bf97038aaf6","after":"0746a1b10d72f6847a59544afe22685b2ab9a0dc","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/d2c63f918ffbd04ed438448039a81bf97038aaf6...0746a1b10d72f6847a59544afe22685b2ab9a0dc","commits":[{"id":"0746a1b10d72f6847a59544afe22685b2ab9a0dc","message":"docs: record merged OAuth verification and align operating guidance\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/0746a1b10d72f6847a59544afe22685b2ab9a0dc","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-03T18:28:35-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docs/platform-oauth-hardening-2026-10-03.md","server/README.md","团购本地生活AI运营App/WEB.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]},{"id":"1fd48a1451e2493281951207445c593068411fb9","message":"Merge remote-tracking branch 'origin/main' into codex/external-integrations-20261003\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/1fd48a1451e2493281951207445c593068411fb9","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-03T18:20:37-07:00","added":["docs/contracts/consumer-self-service.md","docs/contracts/iot-protocol.md","docs/contracts/live-market.md","docs/deployments/real-modules-local-2026-10-03.md","docs/real-module-completion-2026-10-03.md","e2e/tests/09-real-modules.spec.ts","server/prisma/migrations/20261004003250_real_consumer_live_market_iot/migration.sql","server/src/lib/consumer-token.ts","server/src/middleware/consumer-auth.ts","server/src/modules/consumer/routes.ts","server/src/modules/consumer/schema.ts","server/src/modules/consumer/service.ts","server/src/modules/iot/routes.ts","server/src/modules/iot/schema.ts","server/src/modules/iot/service.ts","server/src/modules/live/routes.ts","server/src/modules/live/schema.ts","server/src/modules/live/service.ts","server/src/modules/market/routes.ts","server/src/modules/market/schema.ts","server/src/modules/market/service.ts","server/test/r41-consumer.test.ts","server/test/r42-live-market.test.ts","server/test/r43-iot.test.ts","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/screens-real-modules.jsx","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-consumer-static.mjs","团购本地生活AI运营App/scripts/test-real-modules.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/app.ts","server/src/middleware/request-log.ts","server/src/middleware/security.ts","server/src/modules/booking/service.ts","server/src/modules/ops/service.ts","server/src/modules/resources/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/r33-data-integrity.test.ts","团购本地生活AI运营App/README.md","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-live.jsx","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/screen-governance.mjs","团购本地生活AI运营App/scripts/test-static.mjs","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md"]},{"id":"b3168d64dfd12640cfaeef3e62242b7e6c4a909c","message":"fix(platforms): verify signed authorization and consume OAuth states atomically\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/b3168d64dfd12640cfaeef3e62242b7e6c4a909c","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-03T18:20:35-07:00","added":["docs/contracts/platform-oauth.md","docs/platform-oauth-hardening-2026-10-03.md","server/src/adapters/platform/authorization.ts","server/test/platform-oauth-protocol.unit.test.ts"],"removed":[],"modified":["server/.env.example","server/src/modules/platforms/schema.ts","server/src/modules/platforms/service.ts","server/src/openapi.ts","server/test/external-http.unit.test.ts","server/test/r16-platforms.test.ts","server/test/route-coverage.baseline.json"]}],"total_commits":0,"head_commit":{"id":"0746a1b10d72f6847a59544afe22685b2ab9a0dc","message":"docs: record merged OAuth verification and align operating guidance\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/0746a1b10d72f6847a59544afe22685b2ab9a0dc","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-03T18:28:35-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docs/platform-oauth-hardening-2026-10-03.md","server/README.md","团购本地生活AI运营App/WEB.md","开发计划.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":90457,"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-04T09:08:20+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
|
3
|
5
|
0
|
1791077373
|
0
|
1791077318
|
1791077373
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25190
|
docs: record verified main sync and preserved conc docs: record verified main sync and preserved concurrent workspace...
|
51
|
5
|
ci.yml
|
52
|
5
|
0
|
refs/heads/main
|
0a9ca6505150a0eaa81de69fec53b2b9350cfcbe
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0746a1b10d72f6847a59544afe22685b2ab9a0dc","after":"0a9ca6505150a0eaa81de69fec53b2b9350cfcbe","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/0746a1b10d72f6847a59544afe22685b2ab9a0dc...0a9ca6505150a0eaa81de69fec53b2b9350cfcbe","commits":[{"id":"0a9ca6505150a0eaa81de69fec53b2b9350cfcbe","message":"docs: record verified main sync and preserved concurrent workspace\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/0a9ca6505150a0eaa81de69fec53b2b9350cfcbe","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-03T18:29:29-07:00","added":[],"removed":[],"modified":["docs/platform-oauth-hardening-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"0a9ca6505150a0eaa81de69fec53b2b9350cfcbe","message":"docs: record verified main sync and preserved concurrent workspace\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/0a9ca6505150a0eaa81de69fec53b2b9350cfcbe","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-03T18:29:29-07:00","added":[],"removed":[],"modified":["docs/platform-oauth-hardening-2026-10-03.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":90620,"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-04T09:28: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
|
3
|
5
|
0
|
1791078394
|
0
|
1791077373
|
1791078394
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25192
|
feat: settle consumer bookings with wallet and met feat: settle consumer bookings with wallet and meter AI usage...
|
51
|
5
|
ci.yml
|
54
|
5
|
0
|
refs/heads/main
|
cf6aff7010515877acb32311e7ca99f8cd243d0b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0a9ca6505150a0eaa81de69fec53b2b9350cfcbe","after":"cf6aff7010515877acb32311e7ca99f8cd243d0b","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/0a9ca6505150a0eaa81de69fec53b2b9350cfcbe...cf6aff7010515877acb32311e7ca99f8cd243d0b","commits":[{"id":"cf6aff7010515877acb32311e7ca99f8cd243d0b","message":"feat: settle consumer bookings with wallet and meter AI usage\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/cf6aff7010515877acb32311e7ca99f8cd243d0b","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-03T18:46:25-07:00","added":["docs/consumer-checkout-usage-2026-10-03.md","docs/contracts/ai-usage.md","docs/contracts/consumer-checkout.md","docs/deployments/consumer-checkout-usage-local-2026-10-03.md","e2e/tests/10-checkout-usage.spec.ts","server/prisma/migrations/20261004011448_consumer_checkout_ai_usage/migration.sql","server/src/lib/ai-usage-context.ts","server/src/modules/consumer-checkout/schema.ts","server/src/modules/consumer-checkout/service.ts","server/src/modules/usage/routes.ts","server/src/modules/usage/schema.ts","server/src/modules/usage/service.ts","server/test/ai-usage.unit.test.ts","server/test/r44-consumer-checkout.test.ts","server/test/r45-ai-usage.test.ts","server/test/r46-wallet-link-integrity.test.ts","团购本地生活AI运营App/screens-checkout-usage.jsx","团购本地生活AI运营App/scripts/test-checkout-usage.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/contracts/consumer-self-service.md","e2e/package.json","e2e/tests/09-real-modules.spec.ts","server/README.md","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/adapters/ai/index.ts","server/src/adapters/ai/real.ts","server/src/adapters/ocr/index.ts","server/src/adapters/ocr/vision.ts","server/src/app.ts","server/src/modules/automation-runner/service.ts","server/src/modules/booking/routes.ts","server/src/modules/booking/schema.ts","server/src/modules/booking/service.ts","server/src/modules/compliance/routes.ts","server/src/modules/compliance/service.ts","server/src/modules/consumer/routes.ts","server/src/modules/consumer/service.ts","server/src/modules/content/service.ts","server/src/modules/decor/service.ts","server/src/modules/metrics/routes.ts","server/src/modules/periphery/routes.ts","server/src/modules/reviews/routes.ts","server/src/modules/reviews/service.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/ai-provider.unit.test.ts","server/test/ocr-provider.unit.test.ts","server/test/r41-consumer.test.ts","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/api.js","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-fulfillment.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-auth-governance.mjs","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-static.mjs","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md"]}],"total_commits":0,"head_commit":{"id":"cf6aff7010515877acb32311e7ca99f8cd243d0b","message":"feat: settle consumer bookings with wallet and meter AI usage\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/cf6aff7010515877acb32311e7ca99f8cd243d0b","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-03T18:46:25-07:00","added":["docs/consumer-checkout-usage-2026-10-03.md","docs/contracts/ai-usage.md","docs/contracts/consumer-checkout.md","docs/deployments/consumer-checkout-usage-local-2026-10-03.md","e2e/tests/10-checkout-usage.spec.ts","server/prisma/migrations/20261004011448_consumer_checkout_ai_usage/migration.sql","server/src/lib/ai-usage-context.ts","server/src/modules/consumer-checkout/schema.ts","server/src/modules/consumer-checkout/service.ts","server/src/modules/usage/routes.ts","server/src/modules/usage/schema.ts","server/src/modules/usage/service.ts","server/test/ai-usage.unit.test.ts","server/test/r44-consumer-checkout.test.ts","server/test/r45-ai-usage.test.ts","server/test/r46-wallet-link-integrity.test.ts","团购本地生活AI运营App/screens-checkout-usage.jsx","团购本地生活AI运营App/scripts/test-checkout-usage.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/contracts/consumer-self-service.md","e2e/package.json","e2e/tests/09-real-modules.spec.ts","server/README.md","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/adapters/ai/index.ts","server/src/adapters/ai/real.ts","server/src/adapters/ocr/index.ts","server/src/adapters/ocr/vision.ts","server/src/app.ts","server/src/modules/automation-runner/service.ts","server/src/modules/booking/routes.ts","server/src/modules/booking/schema.ts","server/src/modules/booking/service.ts","server/src/modules/compliance/routes.ts","server/src/modules/compliance/service.ts","server/src/modules/consumer/routes.ts","server/src/modules/consumer/service.ts","server/src/modules/content/service.ts","server/src/modules/decor/service.ts","server/src/modules/metrics/routes.ts","server/src/modules/periphery/routes.ts","server/src/modules/reviews/routes.ts","server/src/modules/reviews/service.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/src/routes.ts","server/test/ai-provider.unit.test.ts","server/test/ocr-provider.unit.test.ts","server/test/r41-consumer.test.ts","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/api.js","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-fulfillment.jsx","团购本地生活AI运营App/screens-p1.jsx","团购本地生活AI运营App/scripts/test-auth-governance.mjs","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-static.mjs","尤克特拉产品设计PRD.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":90627,"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-04T09:29: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
|
3
|
5
|
0
|
1791078823
|
0
|
1791078394
|
1791078823
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25194
|
docs: record checkout and usage local verification
|
51
|
5
|
ci.yml
|
56
|
5
|
0
|
refs/heads/main
|
55dfcf8071943ca22e462fcd79a103681f9c9090
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cf6aff7010515877acb32311e7ca99f8cd243d0b","after":"55dfcf8071943ca22e462fcd79a103681f9c9090","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/cf6aff7010515877acb32311e7ca99f8cd243d0b...55dfcf8071943ca22e462fcd79a103681f9c9090","commits":[{"id":"55dfcf8071943ca22e462fcd79a103681f9c9090","message":"docs: record checkout and usage local verification\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/55dfcf8071943ca22e462fcd79a103681f9c9090","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-03T18:52:11-07:00","added":[],"removed":[],"modified":["docs/consumer-checkout-usage-2026-10-03.md","docs/deployments/consumer-checkout-usage-local-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"55dfcf8071943ca22e462fcd79a103681f9c9090","message":"docs: record checkout and usage local verification\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/55dfcf8071943ca22e462fcd79a103681f9c9090","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-03T18:52:11-07:00","added":[],"removed":[],"modified":["docs/consumer-checkout-usage-2026-10-03.md","docs/deployments/consumer-checkout-usage-local-2026-10-03.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":91001,"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-04T09:46:35+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
|
3
|
5
|
0
|
1791082092
|
0
|
1791078823
|
1791082092
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25197
|
docs(governance): verify merged main and isolated docs(governance): verify merged main and isolated acceptance cleanup...
|
57
|
5
|
governance.yml
|
234
|
5
|
0
|
refs/heads/main
|
1c3e4847ca3bb202c877fa23726c3bd2a52cedcb
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4cadfe25a137afa7cb8681d66c07bba53dac99c2","after":"1c3e4847ca3bb202c877fa23726c3bd2a52cedcb","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/4cadfe25a137afa7cb8681d66c07bba53dac99c2...1c3e4847ca3bb202c877fa23726c3bd2a52cedcb","commits":[{"id":"1c3e4847ca3bb202c877fa23726c3bd2a52cedcb","message":"docs(governance): verify merged main and isolated acceptance cleanup\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1c3e4847ca3bb202c877fa23726c3bd2a52cedcb","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-03T19:34:26-07:00","added":[],"removed":[],"modified":["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/module-completion-2026-10-04/README.md","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/render-job-drainability.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"]},{"id":"de449d847e98522074b13e5efe6ca6a8edec84f3","message":"test(governance): record current-source acceptance and dependency release blocker\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/de449d847e98522074b13e5efe6ca6a8edec84f3","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-03T19:32:22-07:00","added":["reports/content-formal-delivery-ui.png","reports/external-video-source-ui.png","reports/material-publication-ui.png","reports/model-billing-ui.png","reports/module-completion-2026-10-04/README.md","reports/module-completion-2026-10-04/dependency-before-fixes.json","reports/module-completion-2026-10-04/production-environment-failure.json","reports/module-completion-2026-10-04/ui-directory-setup-failure.png","reports/module-completion-2026-10-04/ui-directory-setup-failure.txt","reports/module-completion-2026-10-04/verification.json"],"removed":[],"modified":["reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.check-report-desktop.png","reports/content-detail.description-candidates-desktop.png","reports/content-detail.output-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/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-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/render-job-drainability.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.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-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.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":"f5d276691bf9a1d7c47b4885fdb3e4f2edd3c4be","message":"feat(material): implement frozen content delivery and media lifecycle governance\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f5d276691bf9a1d7c47b4885fdb3e4f2edd3c4be","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-03T19:32:02-07:00","added":["apps/api-fastify/prisma/migrations/20261004030000_content_document/migration.sql","apps/api-fastify/test/material-content-delivery.integration.test.ts","apps/api-nestjs/prisma/migrations/20261004030000_content_document/migration.sql","apps/api-nestjs/test/material-content-delivery.integration.test.ts","apps/web/src/app/admin/assets/page.tsx","apps/web/src/components/admin/AssetInventoryDashboard.tsx","apps/web/src/components/material-factory/ContentArtworkPreview.tsx","apps/web/src/components/material-factory/PromoteContentButton.tsx","apps/web/src/components/material-factory/video-edit/ImportVideoSource.tsx","deploy/vm/fixtures/material-governance-v1.prisma","docs/governance/log/2026-10-04-module-completion.md","docs/releases/2026-10-04-module-completion.md","docs/releases/migrations/2026-10-04-material-governance.json","packages/contracts/src/asset-inventory.ts","packages/contracts/src/content-delivery.ts","packages/contracts/src/realtime.test.ts","packages/material-governance/src/asset-inventory.integration.test.ts","packages/material-governance/src/asset-inventory.ts","packages/material-governance/src/content-delivery.integration.test.ts","packages/material-governance/src/content-delivery.ts","packages/video-edit/src/source-import.integration.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/creative-project/content.service.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.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/outbox.ts","apps/api-fastify/src/routes/material-operations.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/src/routes/video-edit.ts","apps/api-fastify/src/types.ts","apps/api-fastify/test/material-asset-deletion.integration.test.ts","apps/api-fastify/test/material-governance.http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/creative-project/content.service.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-operations.controller.ts","apps/api-nestjs/src/material-production/material-production.controller.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/video-edit/video-edit.controller.ts","apps/api-nestjs/test/material-asset-deletion.integration.test.ts","apps/api-nestjs/test/material-governance.http.acceptance.test.ts","apps/api-nestjs/test/outbox-dispatcher.integration.test.ts","apps/web/src/components/admin/AdminShell.tsx","apps/web/src/components/material-factory/ContentStudio.tsx","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/components/material-factory/video-edit/VideoEditStudio.tsx","apps/web/src/lib/api.ts","deploy/vm/release.py","deploy/vm/release_test.py","docs/README.md","docs/domain/module-boundary.md","docs/domain/owner-matrix.md","docs/product/acceptance-and-status.md","docs/product/content-creation-workbench.md","docs/product/material-governance.md","docs/product/module-gaps-2026-10-03.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","package.json","packages/contracts/src/index.ts","packages/contracts/src/material-access.test.ts","packages/contracts/src/material-access.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","packages/contracts/src/realtime.ts","packages/contracts/src/video-edit.ts","packages/material-governance/src/index.ts","packages/video-edit/src/index.ts","packages/video-edit/src/media.ts","packages/video-edit/src/range-preview.ts","pnpm-lock.yaml","scripts/check-public-file-acceptance.mjs","scripts/lib/material-governance-ui-acceptance.mjs","scripts/lib/vitest-skips.mjs","scripts/migration-history.json"]},{"id":"5ecdab6e275e16242b996df8768d6dc5017d9d22","message":"feat(governance): implement publication approval, video recovery and billing reconciliation\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/5ecdab6e275e16242b996df8768d6dc5017d9d22","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-03T18:16:59-07:00","added":["apps/api-fastify/prisma/migrations/20261004010000_material_reconciliation/migration.sql","apps/api-fastify/prisma/migrations/20261004020000_material_publication/migration.sql","apps/api-fastify/prisma/migrations/20261004021000_publication_audit/migration.sql","apps/api-fastify/src/routes/material-operations.ts","apps/api-fastify/src/routes/material-publication.ts","apps/api-fastify/src/routes/model-billing.ts","apps/api-fastify/test/material-governance.http.acceptance.test.ts","apps/api-nestjs/prisma/migrations/20261004010000_material_reconciliation/migration.sql","apps/api-nestjs/prisma/migrations/20261004020000_material_publication/migration.sql","apps/api-nestjs/prisma/migrations/20261004021000_publication_audit/migration.sql","apps/api-nestjs/src/material-factory/material-operations.controller.ts","apps/api-nestjs/src/material-factory/material-publication.controller.ts","apps/api-nestjs/src/material-factory/model-billing.controller.ts","apps/api-nestjs/test/material-governance.http.acceptance.test.ts","apps/web/src/app/admin/billing/page.tsx","apps/web/src/app/admin/publications/page.tsx","apps/web/src/components/admin/MaterialPublicationDashboard.tsx","apps/web/src/components/admin/ModelBillingDashboard.tsx","apps/web/src/components/admin/ProductionPerformancePanel.tsx","deploy/vm/fixtures/script-entity-settings.prisma","docs/product/material-governance.md","packages/contracts/src/material-publication.ts","packages/contracts/src/model-billing.test.ts","packages/contracts/src/model-billing.ts","packages/contracts/src/production-performance.ts","packages/material-governance/package.json","packages/material-governance/src/errors.ts","packages/material-governance/src/governance.integration.test.ts","packages/material-governance/src/index.ts","packages/material-governance/src/material-publication.integration.test.ts","packages/material-governance/src/material-publication.ts","packages/material-governance/src/model-billing.ts","packages/material-governance/src/production-performance.integration.test.ts","packages/material-governance/src/production-performance.ts","packages/material-governance/src/storyboard-recovery.ts","packages/material-governance/tsconfig.json","scripts/lib/material-governance-ui-acceptance.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/package.json","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-production/material-production.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/tenancy.ts","apps/api-fastify/src/routes/video-edit.ts","apps/api-fastify/test/storyboard-shot-compliance.integration.test.ts","apps/api-nestjs/package.json","apps/api-nestjs/prisma/schema.prisma","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-production/material-production.service.ts","apps/api-nestjs/src/tenancy/tenancy.controller.ts","apps/api-nestjs/src/video-edit/video-edit.controller.ts","apps/api-nestjs/test/storyboard-shot-compliance.integration.test.ts","apps/web/src/components/admin/AdminShell.tsx","apps/web/src/components/admin/ModelOperationsDashboard.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/lib/api.ts","deploy/vm/Dockerfile","deploy/vm/release_test.py","docs/README.md","docs/domain/module-boundary.md","docs/domain/owner-matrix.md","docs/product/acceptance-and-status.md","docs/product/module-gaps-2026-10-03.md","packages/contracts/src/index.ts","packages/contracts/src/material-access.ts","packages/contracts/src/storyboard.ts","pnpm-lock.yaml","scripts/check-ui-acceptance.mjs","scripts/migration-history.json","turbo.json"]}],"total_commits":0,"head_commit":{"id":"1c3e4847ca3bb202c877fa23726c3bd2a52cedcb","message":"docs(governance): verify merged main and isolated acceptance cleanup\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1c3e4847ca3bb202c877fa23726c3bd2a52cedcb","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-03T19:34:26-07:00","added":[],"removed":[],"modified":["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/module-completion-2026-10-04/README.md","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/production-security.latest.json","reports/public-file-integration.latest.json","reports/render-job-drainability.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":980216,"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":42,"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-10-04T08:24: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
|
3
|
3
|
0
|
1791081407
|
0
|
1791081298
|
1791081407
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25198
|
docs(governance): record verified dual-remote main docs(governance): record verified dual-remote main synchronization...
|
57
|
5
|
governance.yml
|
235
|
5
|
0
|
refs/heads/main
|
4c8742d8cc39c65c0c85f237a887f8ecb95c54a5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1c3e4847ca3bb202c877fa23726c3bd2a52cedcb","after":"4c8742d8cc39c65c0c85f237a887f8ecb95c54a5","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/1c3e4847ca3bb202c877fa23726c3bd2a52cedcb...4c8742d8cc39c65c0c85f237a887f8ecb95c54a5","commits":[{"id":"4c8742d8cc39c65c0c85f237a887f8ecb95c54a5","message":"docs(governance): record verified dual-remote main synchronization\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4c8742d8cc39c65c0c85f237a887f8ecb95c54a5","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-03T19:36:44-07:00","added":["reports/module-completion-2026-10-04/main-sync.json"],"removed":[],"modified":["reports/module-completion-2026-10-04/README.md"]}],"total_commits":0,"head_commit":{"id":"4c8742d8cc39c65c0c85f237a887f8ecb95c54a5","message":"docs(governance): record verified dual-remote main synchronization\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4c8742d8cc39c65c0c85f237a887f8ecb95c54a5","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-03T19:36:44-07:00","added":["reports/module-completion-2026-10-04/main-sync.json"],"removed":[],"modified":["reports/module-completion-2026-10-04/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":994140,"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":42,"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-10-04T10:34:58+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
|
3
|
3
|
0
|
1791086301
|
0
|
1791081407
|
1791086301
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25199
|
feat: add consumer referral invites and enforce fi feat: add consumer referral invites and enforce first-purchase rewards...
|
51
|
5
|
ci.yml
|
58
|
5
|
0
|
refs/heads/main
|
1d335e46af39fab7287df8b066ebdb6441866ea8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"55dfcf8071943ca22e462fcd79a103681f9c9090","after":"1d335e46af39fab7287df8b066ebdb6441866ea8","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/55dfcf8071943ca22e462fcd79a103681f9c9090...1d335e46af39fab7287df8b066ebdb6441866ea8","commits":[{"id":"1d335e46af39fab7287df8b066ebdb6441866ea8","message":"feat: add consumer referral invites and enforce first-purchase rewards\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/1d335e46af39fab7287df8b066ebdb6441866ea8","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-03T19:47:57-07:00","added":["docs/consumer-referral-governance-2026-10-03.md","docs/contracts/consumer-referral.md","docs/deployments/consumer-referral-local-2026-10-03.md","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/consumer/referral-schema.ts","server/src/modules/consumer/referral-service.ts","server/test/r47-referral-integrity.test.ts","server/test/r48-consumer-referral.test.ts","server/test/r49-referral-revenue.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/README.md","e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/README.md","server/src/middleware/request-log.ts","server/src/modules/booking/service.ts","server/src/modules/consumer/routes.ts","server/src/modules/orders/service.ts","server/src/modules/referral/schema.ts","server/src/modules/referral/service.ts","server/src/openapi.ts","server/test/request-log.unit.test.ts","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/test-checkout-usage.mjs","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-consumer-static.mjs","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]}],"total_commits":0,"head_commit":{"id":"1d335e46af39fab7287df8b066ebdb6441866ea8","message":"feat: add consumer referral invites and enforce first-purchase rewards\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/1d335e46af39fab7287df8b066ebdb6441866ea8","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-03T19:47:57-07:00","added":["docs/consumer-referral-governance-2026-10-03.md","docs/contracts/consumer-referral.md","docs/deployments/consumer-referral-local-2026-10-03.md","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/consumer/referral-schema.ts","server/src/modules/consumer/referral-service.ts","server/test/r47-referral-integrity.test.ts","server/test/r48-consumer-referral.test.ts","server/test/r49-referral-revenue.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/README.md","e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/README.md","server/src/middleware/request-log.ts","server/src/modules/booking/service.ts","server/src/modules/consumer/routes.ts","server/src/modules/orders/service.ts","server/src/modules/referral/schema.ts","server/src/modules/referral/service.ts","server/src/openapi.ts","server/test/request-log.unit.test.ts","团购本地生活AI运营App/WEB.md","团购本地生活AI运营App/consumer-api.js","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/scripts/build.mjs","团购本地生活AI运营App/scripts/test-checkout-usage.mjs","团购本地生活AI运营App/scripts/test-consumer-auth.mjs","团购本地生活AI运营App/scripts/test-consumer-static.mjs","尤克特拉产品设计PRD.md","开发计划.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":91013,"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-04T09:53:43+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
|
3
|
5
|
0
|
1791082950
|
0
|
1791082093
|
1791082950
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25201
|
docs: record referral regression and verified loca docs: record referral regression and verified local deployment...
|
51
|
5
|
ci.yml
|
60
|
5
|
0
|
refs/heads/main
|
c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"1d335e46af39fab7287df8b066ebdb6441866ea8","after":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/1d335e46af39fab7287df8b066ebdb6441866ea8...c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","commits":[{"id":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","message":"docs: record referral regression and verified local deployment\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","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-03T20:02:13-07:00","added":[],"removed":[],"modified":["docs/consumer-referral-governance-2026-10-03.md","docs/deployments/consumer-referral-local-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","message":"docs: record referral regression and verified local deployment\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","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-03T20:02:13-07:00","added":[],"removed":[],"modified":["docs/consumer-referral-governance-2026-10-03.md","docs/deployments/consumer-referral-local-2026-10-03.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":91232,"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-04T10:48: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
|
3
|
5
|
0
|
1791085991
|
0
|
1791082950
|
1791085991
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25203
|
test(fission): 裂变缺口用例轮次定为 R50(R41–R49 已被主线占用)
|
51
|
5
|
ci.yml
|
62
|
5
|
0
|
refs/heads/main
|
6bd4254c53f9089a569f370eae1380f3d362e82b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2","after":"6bd4254c53f9089a569f370eae1380f3d362e82b","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c8b1849d97c16e01d0e54b6b5f0ba7d9c49670d2...6bd4254c53f9089a569f370eae1380f3d362e82b","commits":[{"id":"6bd4254c53f9089a569f370eae1380f3d362e82b","message":"test(fission): 裂变缺口用例轮次定为 R50(R41–R49 已被主线占用)\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/6bd4254c53f9089a569f370eae1380f3d362e82b","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-03T18:31:19-07:00","added":["server/test/r50-fission-gaps.test.ts"],"removed":["server/test/r41-fission-gaps.test.ts"],"modified":[]},{"id":"e9b2d8df01fc1e8488f2cdfb7b5654493313dba4","message":"feat(fission): 裂变屏展示奖励券码与状态,过期口径改用后端 overdue\n\n配合上一个提交(后端裂变缺口修复)新增的响应字段:\n\n- 拼团卡片的获奖提示带券码;成员详情里获奖人一行给出免单券券码、状态\n (待核销 / 已核销 / 已过期 / 已作废)与有效期;储值赠金写「已入账」;\n 约定储值赠金却改发免单券的存量团在详情里说明原因\n- 转介绍台账已发奖的行给出奖励券券码、状态与有效期\n- 「已过截止时间」以后端回的 overdue 为准,离线样例没有该字段时仍按截止时间自算\n- 开团表单的储值赠金提示改成后端现在的规则(团长无钱包不能开团;\n 不指定团长时首位参团者须有钱包)\n- 离线样例带一张示例券演示展示效果;真实模式在加载中 / 请求失败时显示的\n fallback 不带券码,避免假券码出现在真实界面\n- e2e:开团到结算、手动发转介绍奖励两条补券码与状态断言(页面与接口一致),\n 店员用例补「券码对店员可见」\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/e9b2d8df01fc1e8488f2cdfb7b5654493313dba4","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-03T17:53:05-07:00","added":[],"removed":[],"modified":["e2e/tests/02-deep-flows.spec.ts","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-fission.jsx"]},{"id":"3b699ca902cd2a352e8eaa5e052317a72939d45a","message":"fix(fission): 奖励券码可查、截止时间生效、储值赠金团不再卡死、团价加上界\n\n裂变屏补界面时读后端代码确认的四处缺口,逐条先写真实库集成测试复现\n(test/r41-fission-gaps.test.ts,修复前 13 条里 12 条红),再修。\n\n1. 奖励券码无处可查:拼团详情 / 列表的成员带实发奖励 rewardKind 与\n rewardVoucher{code,status,validUntil,redeemedAt},转介绍台账行带 rewardVoucher。\n 券按 storeId 取(回指列没有外键,指向他店的券不回码);ACTIVE 但已过有效期按\n EXPIRED 派生,同 /bookings;不回 qrPayload。可见范围同 /bookings、/orders 的\n 券码口径:本店全部角色(含店员,核销台要按码核销)。\n2. 截止时间不生效:参团的占名额 CAS 加上 expiresAt 条件,过期 409、不占名额。\n 响应新增 overdue(招募中且已过截止时间,读时派生);不在读路径改状态,\n 也不加无人值守的自动过期,退回仍由人执行。\n3. 储值赠金团卡死在 SUCCESS:开团时团长无钱包 400;门店代开团里按规则会成为\n 获奖人的参团者无钱包 400 且不占名额。存量已满员的团结算时改发免单券并在\n 审计、通知里写明,不再次次回滚。获奖人规则定为:团长,无团长取最早参团者\n (参团时间升序、id 兜底),成员在结算事务内按此顺序读取。\n4. 团价无上限:groupPriceYuan 大于 0、上限 999999.99、最多 2 位小数,\n 极大值不再落成 500,多余小数不再被悄悄四舍五入。\n\nOpenAPI 说明同步;没有新增或删除接口。\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/3b699ca902cd2a352e8eaa5e052317a72939d45a","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-03T17:39:35-07:00","added":["server/test/r41-fission-gaps.test.ts"],"removed":[],"modified":["server/src/lib/voucher.ts","server/src/modules/groupbuy/schema.ts","server/src/modules/groupbuy/service.ts","server/src/modules/referral/service.ts","server/src/openapi.ts"]},{"id":"46b426ed494e780e81a7d6d6245de985a1180bca","message":"docs: 订正控制面接入说明的验收门槛第 3 条——不再写死「71 个 Prisma 模型」\n\n2026-10-03 当天 schema 由 71 增到 90 个模型(node scripts/docs-metrics.mjs @ c8b1849)。控制面要守的\n是「与 Entity Catalog 的精确重名集合 = DEC-030 登记的 7 个」,不是模型总数;新增 19 个模型没有新的精确重名。\n只改 docs/platform-onboarding.md 这一条;带日期的历史快照与基准文档(产品说明书 v1.0、模块关系图谱\n2026-07-31 基准、真实实现治理记录)保留原读数不动。\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/46b426ed494e780e81a7d6d6245de985a1180bca","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-03T20:43:42-07:00","added":[],"removed":[],"modified":["docs/platform-onboarding.md"]}],"total_commits":0,"head_commit":{"id":"6bd4254c53f9089a569f370eae1380f3d362e82b","message":"test(fission): 裂变缺口用例轮次定为 R50(R41–R49 已被主线占用)\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/6bd4254c53f9089a569f370eae1380f3d362e82b","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-03T18:31:19-07:00","added":["server/test/r50-fission-gaps.test.ts"],"removed":["server/test/r41-fission-gaps.test.ts"],"modified":[]},"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":91246,"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-04T11:02: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
|
3
|
5
|
0
|
1791087416
|
0
|
1791085991
|
1791087416
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25205
|
test(gates): 七项重型门禁与静态链在 1791ae9d 指纹下的报告与截图
|
57
|
5
|
governance.yml
|
236
|
5
|
0
|
refs/heads/main
|
fcf2069901b8469ddeda090ed580fe0eb0c934aa
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4c8742d8cc39c65c0c85f237a887f8ecb95c54a5","after":"fcf2069901b8469ddeda090ed580fe0eb0c934aa","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/4c8742d8cc39c65c0c85f237a887f8ecb95c54a5...fcf2069901b8469ddeda090ed580fe0eb0c934aa","commits":[{"id":"fcf2069901b8469ddeda090ed580fe0eb0c934aa","message":"test(gates): 七项重型门禁与静态链在 1791ae9d 指纹下的报告与截图\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/fcf2069901b8469ddeda090ed580fe0eb0c934aa","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-03T20:57:13-07:00","added":[],"removed":[],"modified":["reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.check-report-desktop.png","reports/content-detail.description-candidates-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-formal-delivery-ui.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/director-workbench.desktop.png","reports/external-video-source-ui.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-publication-ui.png","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-billing-ui.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/render-job-drainability.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.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-save-ready.GENERAL.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.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":"ccc857913711c456ea8bc7a39303bb48a46ea596","message":"docs(governance): 门店侧发布门禁变基合入主干后的基线与七项重验记录\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ccc857913711c456ea8bc7a39303bb48a46ea596","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-03T20:57:13-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-10-03-store-publication-gate.md"]},{"id":"1aece2b7b26cf40bb80e739890cf133848b3547b","message":"docs(governance): ADR-0023 门店侧发布门禁以发布治理为唯一真源,同步归属矩阵、模块缺口与治理记录\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/1aece2b7b26cf40bb80e739890cf133848b3547b","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-03T19:32:28-07:00","added":["docs/adr/0023-store-side-publication-gate.md","docs/governance/log/2026-10-03-store-publication-gate.md"],"removed":[],"modified":["CLAUDE.md","docs/adr/README.md","docs/domain/owner-matrix.md","docs/product/material-governance.md","docs/product/module-gaps-2026-10-03.md"]},{"id":"ff2d032ec8b571c0b7c3fe502932ba7ac7c7e66f","message":"test(gates): 门店发布门禁三条防回潮规则\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/ff2d032ec8b571c0b7c3fe502932ba7ac7c7e66f","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-03T19:32:28-07:00","added":[],"removed":[],"modified":["scripts/check-material-review-concurrency-guard.mjs"]},{"id":"d18d909cccc87b596057c32a549648ca595ce822","message":"feat(web): 品牌模板页显示门店可用状态并指向版本发布页,模板制作页被拦时给出原因\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/d18d909cccc87b596057c32a549648ca595ce822","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-03T19:32:28-07:00","added":["apps/web/src/components/material-factory/template-store-status.ts"],"removed":[],"modified":["apps/web/e2e/specs/edit-studio.spec.ts","apps/web/e2e/support/api.ts","apps/web/src/components/material-factory/EditStudio.tsx","apps/web/src/components/material-factory/TemplateStudio.tsx"]}],"total_commits":0,"head_commit":{"id":"fcf2069901b8469ddeda090ed580fe0eb0c934aa","message":"test(gates): 七项重型门禁与静态链在 1791ae9d 指纹下的报告与截图\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/fcf2069901b8469ddeda090ed580fe0eb0c934aa","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-03T20:57:13-07:00","added":[],"removed":[],"modified":["reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-desktop.png","reports/admin-mobile.png","reports/content-detail.check-report-desktop.png","reports/content-detail.description-candidates-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-formal-delivery-ui.png","reports/contract-consumers.latest.json","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/director-workbench.desktop.png","reports/external-video-source-ui.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-publication-ui.png","reports/material-review-concurrency-guard.latest.json","reports/migrations.latest.json","reports/model-api-key-saved.png","reports/model-billing-ui.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/render-job-drainability.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.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-save-ready.GENERAL.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.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":994153,"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":42,"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-10-04T10:36: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
|
1791124858
|
1791124908
|
0
|
1791086301
|
1791124908
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25206
|
fix(money): 元金额入参加上界与小数位,极大值 400 而不是 500
|
51
|
5
|
ci.yml
|
64
|
5
|
0
|
refs/heads/main
|
f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6bd4254c53f9089a569f370eae1380f3d362e82b","after":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/6bd4254c53f9089a569f370eae1380f3d362e82b...f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","commits":[{"id":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","message":"fix(money): 元金额入参加上界与小数位,极大值 400 而不是 500\n\n多处 zod 入参收「元」但没有上界、没有小数位限制:极大值经 yuanToCents 转分后超出\nPostgres Int,写库抛错落成 500 INTERNAL;多于 2 位的小数则被悄悄四舍五入。\n先写真实库集成测试复现(test/r53-amount-bounds.test.ts,修复前 54 条里 39 条红,\n13 个字段的 1e12 全部 500),再修。\n\n- lib/money.ts 新增共用的 yuanAmountSchema:上界、最多 2 位小数(乘 100 后离最近\n 整数的距离判定,0.07 / 1.15 这类不被误拒)、可选必须为正;声明的上界自身转分\n 超出 Int 时直接抛错。\n- 单笔上界 999999.99:钱包充值 / 抵扣、工单补偿、差评补救、资源低消。\n- 汇总上界 9999999.99:投放预算与花费、单日营业额与投放。\n- 月度目标 targetWan 上界 2000(万元)。\n- 资源低消沿用原有的数字字符串兼容,同样受上界与小数位约束。\n- OpenAPI 请求体说明同步;PATCH /resources/{id}、PATCH /campaigns/{id} 补上请求体。\n- 前端:会员抵扣、经营截图补录两处自由输入的金额按同口径先校验(Caliber.yuanInputError),\n 不合法不发请求。\n\n差评补救 amountYuan 与月度目标 targetWan 不在最初清单里,同一条转分路径、同样 500,一并修。\n没有新增或删除接口。\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/f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","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-03T18:47:38-07:00","added":["server/test/money.unit.test.ts","server/test/r53-amount-bounds.test.ts"],"removed":[],"modified":["server/src/lib/money.ts","server/src/modules/campaigns/schema.ts","server/src/modules/goal/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/ops/schema.ts","server/src/modules/resources/schema.ts","server/src/modules/reviews/routes.ts","server/src/modules/wallet/schema.ts","server/src/openapi.ts","团购本地生活AI运营App/caliber.js","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx"]}],"total_commits":0,"head_commit":{"id":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","message":"fix(money): 元金额入参加上界与小数位,极大值 400 而不是 500\n\n多处 zod 入参收「元」但没有上界、没有小数位限制:极大值经 yuanToCents 转分后超出\nPostgres Int,写库抛错落成 500 INTERNAL;多于 2 位的小数则被悄悄四舍五入。\n先写真实库集成测试复现(test/r53-amount-bounds.test.ts,修复前 54 条里 39 条红,\n13 个字段的 1e12 全部 500),再修。\n\n- lib/money.ts 新增共用的 yuanAmountSchema:上界、最多 2 位小数(乘 100 后离最近\n 整数的距离判定,0.07 / 1.15 这类不被误拒)、可选必须为正;声明的上界自身转分\n 超出 Int 时直接抛错。\n- 单笔上界 999999.99:钱包充值 / 抵扣、工单补偿、差评补救、资源低消。\n- 汇总上界 9999999.99:投放预算与花费、单日营业额与投放。\n- 月度目标 targetWan 上界 2000(万元)。\n- 资源低消沿用原有的数字字符串兼容,同样受上界与小数位约束。\n- OpenAPI 请求体说明同步;PATCH /resources/{id}、PATCH /campaigns/{id} 补上请求体。\n- 前端:会员抵扣、经营截图补录两处自由输入的金额按同口径先校验(Caliber.yuanInputError),\n 不合法不发请求。\n\n差评补救 amountYuan 与月度目标 targetWan 不在最初清单里,同一条转分路径、同样 500,一并修。\n没有新增或删除接口。\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/f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","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-03T18:47:38-07:00","added":["server/test/money.unit.test.ts","server/test/r53-amount-bounds.test.ts"],"removed":[],"modified":["server/src/lib/money.ts","server/src/modules/campaigns/schema.ts","server/src/modules/goal/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/ops/schema.ts","server/src/modules/resources/schema.ts","server/src/modules/reviews/routes.ts","server/src/modules/wallet/schema.ts","server/src/openapi.ts","团购本地生活AI运营App/caliber.js","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx"]},"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":91339,"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-04T11:53: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
|
3
|
5
|
0
|
1791088492
|
0
|
1791087416
|
1791088492
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25208
|
fix: require exact cents across merged amount inpu fix: require exact cents across merged amount inputs...
|
51
|
5
|
ci.yml
|
66
|
5
|
0
|
refs/heads/main
|
ffc82024e26210dd956dd84dfb66b6a102026bf6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0","after":"ffc82024e26210dd956dd84dfb66b6a102026bf6","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/f5e0f5cd7013ffb3bc7f30f173fa8aab7fbe59f0...ffc82024e26210dd956dd84dfb66b6a102026bf6","commits":[{"id":"ffc82024e26210dd956dd84dfb66b6a102026bf6","message":"fix: require exact cents across merged amount inputs\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ffc82024e26210dd956dd84dfb66b6a102026bf6","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-03T21:34:48-07:00","added":["server/test/r55-fission-integrity.test.ts"],"removed":["server/test/r53-fission-integrity.test.ts"],"modified":["CLAUDE.md","README.md","docs/ai-limit-billing-governance-2026-10-03.md","docs/contracts/fission-integrity-followup.md","server/src/lib/money.ts","server/test/money.unit.test.ts","开发计划.md"]},{"id":"81a2787d7039b14f777fbe6cc21fc7c2fbf395e4","message":"Merge remote-tracking branch 'origin/main'\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/81a2787d7039b14f777fbe6cc21fc7c2fbf395e4","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-03T21:26:20-07:00","added":["server/test/money.unit.test.ts","server/test/r53-amount-bounds.test.ts"],"removed":[],"modified":["server/src/lib/money.ts","server/src/modules/campaigns/schema.ts","server/src/modules/goal/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/ops/schema.ts","server/src/modules/resources/schema.ts","server/src/modules/reviews/routes.ts","server/src/modules/wallet/schema.ts","server/src/openapi.ts","团购本地生活AI运营App/caliber.js","团购本地生活AI运营App/consumer.html","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-member.jsx","团购本地生活AI运营App/screens-p2.jsx"]},{"id":"254dd57c81fd4898889329e637a82c8616d80eea","message":"feat: enforce AI admissions and recover billing with proven fission rewards\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/254dd57c81fd4898889329e637a82c8616d80eea","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-03T21:26:20-07:00","added":["docs/ai-limit-billing-governance-2026-10-03.md","docs/contracts/ai-limit-billing-recovery.md","docs/contracts/fission-integrity-followup.md","e2e/tests/12-ai-limit-billing.spec.ts","e2e/tests/13-fission-integrity.spec.ts","server/src/lib/ai-usage-limit.ts","server/test/ai-limit-billing-contract.unit.test.ts","server/test/ai-limit-env.unit.test.ts","server/test/groupbuy-price.unit.test.ts","server/test/r51-billing-recovery.test.ts","server/test/r52-ai-monthly-limit.test.ts","server/test/r53-fission-integrity.test.ts","server/test/r54-reward-primitives.test.ts","团购本地生活AI运营App/scripts/test-ai-limit-billing.mjs","团购本地生活AI运营App/scripts/test-fission-integrity.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/contracts/ai-usage.md","e2e/package.json","server/.env.example","server/src/config/env.ts","server/src/lib/ai-usage-context.ts","server/src/lib/voucher.ts","server/src/modules/billing/service.ts","server/src/modules/groupbuy/schema.ts","server/src/modules/groupbuy/service.ts","server/src/modules/referral/service.ts","server/src/modules/usage/service.ts","server/src/modules/wallet/service.ts","server/src/openapi.ts","server/test/r37-billing.test.ts","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screens-checkout-usage.jsx","团购本地生活AI运营App/screens-fission.jsx","团购本地生活AI运营App/screens-p1.jsx","尤克特拉产品设计PRD.md","开发计划.md","治理经验库.md","项目阻塞点分析.md"]}],"total_commits":0,"head_commit":{"id":"ffc82024e26210dd956dd84dfb66b6a102026bf6","message":"fix: require exact cents across merged amount inputs\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ffc82024e26210dd956dd84dfb66b6a102026bf6","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-03T21:34:48-07:00","added":["server/test/r55-fission-integrity.test.ts"],"removed":["server/test/r53-fission-integrity.test.ts"],"modified":["CLAUDE.md","README.md","docs/ai-limit-billing-governance-2026-10-03.md","docs/contracts/fission-integrity-followup.md","server/src/lib/money.ts","server/test/money.unit.test.ts","开发计划.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":91424,"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-04T12:16: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":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
|
5
|
0
|
1791088761
|
0
|
1791088492
|
1791088761
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25210
|
docs: record verified AI billing and fission local docs: record verified AI billing and fission local release...
|
51
|
5
|
ci.yml
|
68
|
5
|
0
|
refs/heads/main
|
2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ffc82024e26210dd956dd84dfb66b6a102026bf6","after":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ffc82024e26210dd956dd84dfb66b6a102026bf6...2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","commits":[{"id":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","message":"docs: record verified AI billing and fission local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","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-03T21:39:18-07:00","added":[],"removed":[],"modified":["docs/ai-limit-billing-governance-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","message":"docs: record verified AI billing and fission local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","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-03T21:39:18-07:00","added":[],"removed":[],"modified":["docs/ai-limit-billing-governance-2026-10-03.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":91781,"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-04T12:34:52+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
|
3
|
5
|
0
|
1791092429
|
0
|
1791088761
|
1791092429
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25212
|
fix(honesty): 真实接口模式不再把样例当数据、把未做的动作说成已完成
|
51
|
5
|
ci.yml
|
70
|
5
|
0
|
refs/heads/main
|
92a86b698b2071089cbb4e272dea99863d4f162a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828","after":"92a86b698b2071089cbb4e272dea99863d4f162a","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/2a4061e4c3ff9166f1b8d1bdd1a847749a5b7828...92a86b698b2071089cbb4e272dea99863d4f162a","commits":[{"id":"92a86b698b2071089cbb4e272dea99863d4f162a","message":"fix(honesty): 真实接口模式不再把样例当数据、把未做的动作说成已完成\n\n- 工作日历:后端无数据返回 0 / null / 空数组,去掉 9/6/11/4 项、完成率 76、\n 固定月度进度与示例议程;年视图目标进度改为当月 GMV ÷ 已设目标。前端真实\n 模式只认后端值,加载中或失败是空日历。\n- 复制:新增 copyText / useCopyFeedback,写入剪贴板成功才显示「已复制」。\n- 自动内容发布:只选出候选并登记,返回 selected / published:0 /\n externalPublished:false,通知改为「内容候选待你发布」。\n- 差评退款:通知与界面改为「已登记、待人工出款」,响应带 payout。\n- 卫生打卡:文字记录,photoUrl 可选且只收 http(s);迁移清空历史占位串。\n- 同城热点:响应带 hotspotsSource(seed-sample),界面标明内置样例。\n- 遗留组件 MediaPlanResult 去掉无接口的「已同步到智能投放」。\n\n验证(变基到 2a4061e 后):后端 91 文件 850 条、接口覆盖 251/253(基线 2\n未变);浏览器深度流程 + 本轮场景 32/32。变基前整套浏览器回归 226/226。\n记录见 docs/honest-state-governance-2026-10-03.md。\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/92a86b698b2071089cbb4e272dea99863d4f162a","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-03T22:16:55-07:00","added":["docs/honest-state-governance-2026-10-03.md","e2e/tests/14-honest-state.spec.ts","server/prisma/migrations/20261004043749_hygiene_photo_optional/migration.sql","团购本地生活AI运营App/scripts/test-honest-state.mjs"],"removed":[],"modified":["e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/modules/automation-runner/service.ts","server/src/modules/automation/service.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/periphery/service.ts","server/src/modules/reviews/service.ts","server/src/modules/work-calendar/service.ts","server/src/openapi.ts","server/test/r11-review-care.test.ts","server/test/r20-ops.test.ts","server/test/r23-work-calendar.test.ts","server/test/r4-trust.test.ts","server/test/r5-periphery.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/ui.jsx"]}],"total_commits":0,"head_commit":{"id":"92a86b698b2071089cbb4e272dea99863d4f162a","message":"fix(honesty): 真实接口模式不再把样例当数据、把未做的动作说成已完成\n\n- 工作日历:后端无数据返回 0 / null / 空数组,去掉 9/6/11/4 项、完成率 76、\n 固定月度进度与示例议程;年视图目标进度改为当月 GMV ÷ 已设目标。前端真实\n 模式只认后端值,加载中或失败是空日历。\n- 复制:新增 copyText / useCopyFeedback,写入剪贴板成功才显示「已复制」。\n- 自动内容发布:只选出候选并登记,返回 selected / published:0 /\n externalPublished:false,通知改为「内容候选待你发布」。\n- 差评退款:通知与界面改为「已登记、待人工出款」,响应带 payout。\n- 卫生打卡:文字记录,photoUrl 可选且只收 http(s);迁移清空历史占位串。\n- 同城热点:响应带 hotspotsSource(seed-sample),界面标明内置样例。\n- 遗留组件 MediaPlanResult 去掉无接口的「已同步到智能投放」。\n\n验证(变基到 2a4061e 后):后端 91 文件 850 条、接口覆盖 251/253(基线 2\n未变);浏览器深度流程 + 本轮场景 32/32。变基前整套浏览器回归 226/226。\n记录见 docs/honest-state-governance-2026-10-03.md。\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/92a86b698b2071089cbb4e272dea99863d4f162a","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-03T22:16:55-07:00","added":["docs/honest-state-governance-2026-10-03.md","e2e/tests/14-honest-state.spec.ts","server/prisma/migrations/20261004043749_hygiene_photo_optional/migration.sql","团购本地生活AI运营App/scripts/test-honest-state.mjs"],"removed":[],"modified":["e2e/package.json","e2e/tests/02-deep-flows.spec.ts","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/modules/automation-runner/service.ts","server/src/modules/automation/service.ts","server/src/modules/ops/schema.ts","server/src/modules/ops/service.ts","server/src/modules/periphery/service.ts","server/src/modules/reviews/service.ts","server/src/modules/work-calendar/service.ts","server/src/openapi.ts","server/test/r11-review-care.test.ts","server/test/r20-ops.test.ts","server/test/r23-work-calendar.test.ts","server/test/r4-trust.test.ts","server/test/r5-periphery.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screens-facility.jsx","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-private.jsx","团购本地生活AI运营App/ui.jsx"]},"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":91794,"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-04T12:39: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":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
|
3
|
5
|
0
|
1791097228
|
0
|
1791092429
|
1791097228
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25214
|
fix: enforce task, notification and fulfillment ex fix: enforce task, notification and fulfillment execution integrity...
|
51
|
5
|
ci.yml
|
72
|
5
|
0
|
refs/heads/main
|
bc7a44f1327b4955940074a6789cd7354d345a53
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"92a86b698b2071089cbb4e272dea99863d4f162a","after":"bc7a44f1327b4955940074a6789cd7354d345a53","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/92a86b698b2071089cbb4e272dea99863d4f162a...bc7a44f1327b4955940074a6789cd7354d345a53","commits":[{"id":"bc7a44f1327b4955940074a6789cd7354d345a53","message":"fix: enforce task, notification and fulfillment execution integrity\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/bc7a44f1327b4955940074a6789cd7354d345a53","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-04T00:00:05-07:00","added":["docs/contracts/execution-integrity-followup.md","docs/execution-integrity-governance-2026-10-03.md","e2e/tests/15-execution-integrity.spec.ts","server/test/consumer-reward-proof.unit.test.ts","server/test/r56-task-integrity.test.ts","server/test/r57-notification-discovery.test.ts","server/test/r58-automation-failure.test.ts","server/test/r59-fulfillment-admission.test.ts","server/test/r60-consumer-reward-proof.test.ts","团购本地生活AI运营App/scripts/test-execution-integrity.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/automation-runner/service.ts","server/src/modules/booking/service.ts","server/src/modules/consumer-checkout/service.ts","server/src/modules/consumer/referral-service.ts","server/src/modules/operations/notifications.ts","server/src/modules/periphery/service.ts","server/src/modules/resources/service.ts","server/src/modules/tasks/service.ts","server/src/openapi.ts","server/test/r48-consumer-referral.test.ts","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-tasks.jsx","开发计划.md","治理经验库.md"]}],"total_commits":0,"head_commit":{"id":"bc7a44f1327b4955940074a6789cd7354d345a53","message":"fix: enforce task, notification and fulfillment execution integrity\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/bc7a44f1327b4955940074a6789cd7354d345a53","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-04T00:00:05-07:00","added":["docs/contracts/execution-integrity-followup.md","docs/execution-integrity-governance-2026-10-03.md","e2e/tests/15-execution-integrity.spec.ts","server/test/consumer-reward-proof.unit.test.ts","server/test/r56-task-integrity.test.ts","server/test/r57-notification-discovery.test.ts","server/test/r58-automation-failure.test.ts","server/test/r59-fulfillment-admission.test.ts","server/test/r60-consumer-reward-proof.test.ts","团购本地生活AI运营App/scripts/test-execution-integrity.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","e2e/tests/11-consumer-referral.spec.ts","server/src/modules/automation-runner/service.ts","server/src/modules/booking/service.ts","server/src/modules/consumer-checkout/service.ts","server/src/modules/consumer/referral-service.ts","server/src/modules/operations/notifications.ts","server/src/modules/periphery/service.ts","server/src/modules/resources/service.ts","server/src/modules/tasks/service.ts","server/src/openapi.ts","server/test/r48-consumer-referral.test.ts","团购本地生活AI运营App/consumer-app.jsx","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-tasks.jsx","开发计划.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":92106,"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-04T13:40: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
|
3
|
5
|
0
|
1791097459
|
0
|
1791097228
|
1791097459
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25216
|
docs: record verified execution integrity local re docs: record verified execution integrity local release...
|
51
|
5
|
ci.yml
|
74
|
5
|
0
|
refs/heads/main
|
c403f278853af537c83151736686e428a13ef35a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"bc7a44f1327b4955940074a6789cd7354d345a53","after":"c403f278853af537c83151736686e428a13ef35a","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/bc7a44f1327b4955940074a6789cd7354d345a53...c403f278853af537c83151736686e428a13ef35a","commits":[{"id":"c403f278853af537c83151736686e428a13ef35a","message":"docs: record verified execution integrity local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c403f278853af537c83151736686e428a13ef35a","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-04T00:03:52-07:00","added":[],"removed":[],"modified":["docs/execution-integrity-governance-2026-10-03.md"]}],"total_commits":0,"head_commit":{"id":"c403f278853af537c83151736686e428a13ef35a","message":"docs: record verified execution integrity local release\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/c403f278853af537c83151736686e428a13ef35a","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-04T00:03:52-07:00","added":[],"removed":[],"modified":["docs/execution-integrity-governance-2026-10-03.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":92301,"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-04T15:00:28+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
|
3
|
5
|
0
|
1791098629
|
0
|
1791097459
|
1791098629
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25218
|
fix(honesty): 真实接口模式下各屏不再显示样例数字、不再有只报成功不调接口的按钮
|
51
|
5
|
ci.yml
|
76
|
5
|
0
|
refs/heads/main
|
cc720a3ed232225461ea8651defce0f7de17a7e8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c403f278853af537c83151736686e428a13ef35a","after":"cc720a3ed232225461ea8651defce0f7de17a7e8","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/c403f278853af537c83151736686e428a13ef35a...cc720a3ed232225461ea8651defce0f7de17a7e8","commits":[{"id":"cc720a3ed232225461ea8651defce0f7de17a7e8","message":"fix(honesty): 真实接口模式下各屏不再显示样例数字、不再有只报成功不调接口的按钮\n\n前端(离线演示模式保持原样):\n- 门店总览、桌面经营工作流、手机首页:只用后端数据;工作流「确认」真的创建任务。\n- 增长看板:头部数字、环比、趋势从每日经营数据算;没有接口的画像与洞察不渲染。\n- 增长闭环、目标设定、行动详情、今日简报、操作审计:去掉样例兜底与编造的依据;\n 目标保存到当前月份(原先写死 2026-06)。\n- 智能投放、核销订单、我的、门店连锁、数据中心、模板、跨店下发、调价等:\n 加载 / 失败 / 空三态;套餐与角色取真实身份;新建投放由用户填写。\n- 内容创作、评价、线索、任务、私域、合规、装修:没生成不显示结果;去掉「发布」\n 「生成成片」;评价回复标明未回写平台;线索跟进与邀约由操作人填写。\n- 已登录商家不再显示演示业态切换;权限页标明只读。\n\n后端:\n- 预算建议不再写「预计整体核销可 +18%」,迁移额与可迁移额一致;\n 应用预算不再返回「明日生效」。\n- 经营漏斗各环节达标时 weakest 为 null,前缀改为「规则诊断」。\n- 跨店下发依据「本月增量」改为「归因增量」。\n\n任务屏以执行完整性一轮(bc7a44f)的版本为准,本提交不改它。\n\n验证(变基到 bc7a44f 后):前端整链(含 5 个新回归脚本)通过;后端 97 文件\n909 条、接口覆盖 251/253;浏览器完整回归 244 通过 / 2 按设计跳过。\n记录见 docs/honest-state-governance-2026-10-03.md 第二批。\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/cc720a3ed232225461ea8651defce0f7de17a7e8","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-03T23:54:59-07:00","added":["e2e/tests/16-honest-shell.spec.ts","团购本地生活AI运营App/scripts/test-honest-content.mjs","团购本地生活AI运营App/scripts/test-honest-data.mjs","团购本地生活AI运营App/scripts/test-honest-growth.mjs","团购本地生活AI运营App/scripts/test-honest-misc.mjs","团购本地生活AI运营App/scripts/test-honest-shell.mjs"],"removed":[],"modified":["CLAUDE.md","docs/honest-state-governance-2026-10-03.md","e2e/package.json","server/src/modules/campaigns/service.ts","server/src/modules/metrics/service.ts","server/src/modules/rollout/service.ts","server/test/r2-ops.test.ts","server/test/r3-growth.test.ts","server/test/r35-uncovered-writes.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活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-growth.jsx","团购本地生活AI运营App/screens-leads.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/ui.jsx","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"cc720a3ed232225461ea8651defce0f7de17a7e8","message":"fix(honesty): 真实接口模式下各屏不再显示样例数字、不再有只报成功不调接口的按钮\n\n前端(离线演示模式保持原样):\n- 门店总览、桌面经营工作流、手机首页:只用后端数据;工作流「确认」真的创建任务。\n- 增长看板:头部数字、环比、趋势从每日经营数据算;没有接口的画像与洞察不渲染。\n- 增长闭环、目标设定、行动详情、今日简报、操作审计:去掉样例兜底与编造的依据;\n 目标保存到当前月份(原先写死 2026-06)。\n- 智能投放、核销订单、我的、门店连锁、数据中心、模板、跨店下发、调价等:\n 加载 / 失败 / 空三态;套餐与角色取真实身份;新建投放由用户填写。\n- 内容创作、评价、线索、任务、私域、合规、装修:没生成不显示结果;去掉「发布」\n 「生成成片」;评价回复标明未回写平台;线索跟进与邀约由操作人填写。\n- 已登录商家不再显示演示业态切换;权限页标明只读。\n\n后端:\n- 预算建议不再写「预计整体核销可 +18%」,迁移额与可迁移额一致;\n 应用预算不再返回「明日生效」。\n- 经营漏斗各环节达标时 weakest 为 null,前缀改为「规则诊断」。\n- 跨店下发依据「本月增量」改为「归因增量」。\n\n任务屏以执行完整性一轮(bc7a44f)的版本为准,本提交不改它。\n\n验证(变基到 bc7a44f 后):前端整链(含 5 个新回归脚本)通过;后端 97 文件\n909 条、接口覆盖 251/253;浏览器完整回归 244 通过 / 2 按设计跳过。\n记录见 docs/honest-state-governance-2026-10-03.md 第二批。\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/cc720a3ed232225461ea8651defce0f7de17a7e8","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-03T23:54:59-07:00","added":["e2e/tests/16-honest-shell.spec.ts","团购本地生活AI运营App/scripts/test-honest-content.mjs","团购本地生活AI运营App/scripts/test-honest-data.mjs","团购本地生活AI运营App/scripts/test-honest-growth.mjs","团购本地生活AI运营App/scripts/test-honest-misc.mjs","团购本地生活AI运营App/scripts/test-honest-shell.mjs"],"removed":[],"modified":["CLAUDE.md","docs/honest-state-governance-2026-10-03.md","e2e/package.json","server/src/modules/campaigns/service.ts","server/src/modules/metrics/service.ts","server/src/modules/rollout/service.ts","server/test/r2-ops.test.ts","server/test/r3-growth.test.ts","server/test/r35-uncovered-writes.test.ts","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活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-growth.jsx","团购本地生活AI运营App/screens-leads.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/ui.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":92311,"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-04T15:04:20+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
|
3
|
5
|
0
|
1791117721
|
0
|
1791098629
|
1791117721
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25220
|
feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导
|
51
|
5
|
ci.yml
|
78
|
5
|
0
|
refs/heads/main
|
8dea76f88dbc1d25b9138740a700858621193fcf
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"cc720a3ed232225461ea8651defce0f7de17a7e8","after":"8dea76f88dbc1d25b9138740a700858621193fcf","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/cc720a3ed232225461ea8651defce0f7de17a7e8...8dea76f88dbc1d25b9138740a700858621193fcf","commits":[{"id":"8dea76f88dbc1d25b9138740a700858621193fcf","message":"feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导\n\n调价建议生成器(此前全仓没有任何代码创建 PricingSuggestion):\n- POST /pricing/suggestions/generate 按门店已开启的规则从本店数据生成:\n 竞品跟价(同价位带对标)、周末高峰、平峰折扣、节假日溢价;库存告急无数据来源不生成。\n- 规则建议不带销量 / 毛利预测(source=rule,verify / margin / conf 为 null);\n 数据不够不生成并在 skipped 里说明原因;同店并发只落一条,处理后 7 天内不重提。\n- 生成与采纳用同一套餐权益;同一套餐 24 小时内调价不超过 2 次由系统拦截,\n 其余护栏文案改为「需人工把关」。\n- 迁移 20261004072931:PricingSuggestion.source 列与取值约束。\n\n开店配置界面(真实接口模式;离线演示不变):\n- 产品定价:新建 / 编辑 / 下架套餐。\n- 门店资料:房台资源新增 / 编辑 / 设为维护 / 恢复可用;总部可改门店资料。\n- 门店连锁:总部新建门店,套餐不含连锁能力时显示后端原因。\n- 动态调价:按规则生成按钮,按来源标注建议。\n- 客户端把参数校验失败的具体字段带进提示。\n\n参考数据引导:\n- 节假日日历、内容模板、合规法规抽到 prisma/reference-data.ts,种子与引导共用。\n- npm run bootstrap:reference 只补缺、不删除、可重复、并发安全;\n 容器入口在迁移后默认执行。模板不再带编造的使用量;热点是样例,不进引导。\n\n验证:后端 99 文件 925 条、接口覆盖 252/254(基线 2 未变);前端整链通过;\n浏览器完整回归 256 通过 / 2 按设计跳过,含刚注册空商户的冷启动场景。\n规则见 docs/contracts/pricing-suggestion-rules.md,\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\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/8dea76f88dbc1d25b9138740a700858621193fcf","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-04T01:23:02-07:00","added":["docs/contracts/pricing-suggestion-rules.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/prisma/bootstrap-reference.ts","server/prisma/migrations/20261004072931_pricing_suggestion_source/migration.sql","server/prisma/reference-data.ts","server/src/modules/pricing/generator.ts","server/test/r61-pricing-generator.test.ts","server/test/r62-reference-bootstrap.test.ts","团购本地生活AI运营App/scripts/test-setup-screens.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/docker-entrypoint.sh","server/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/middleware/entitlement.ts","server/src/modules/pricing/routes.ts","server/src/modules/pricing/service.ts","server/src/openapi.ts","server/test/r39-entitlement.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"8dea76f88dbc1d25b9138740a700858621193fcf","message":"feat(setup): 调价建议按规则生成、开店配置界面、参考数据非破坏性引导\n\n调价建议生成器(此前全仓没有任何代码创建 PricingSuggestion):\n- POST /pricing/suggestions/generate 按门店已开启的规则从本店数据生成:\n 竞品跟价(同价位带对标)、周末高峰、平峰折扣、节假日溢价;库存告急无数据来源不生成。\n- 规则建议不带销量 / 毛利预测(source=rule,verify / margin / conf 为 null);\n 数据不够不生成并在 skipped 里说明原因;同店并发只落一条,处理后 7 天内不重提。\n- 生成与采纳用同一套餐权益;同一套餐 24 小时内调价不超过 2 次由系统拦截,\n 其余护栏文案改为「需人工把关」。\n- 迁移 20261004072931:PricingSuggestion.source 列与取值约束。\n\n开店配置界面(真实接口模式;离线演示不变):\n- 产品定价:新建 / 编辑 / 下架套餐。\n- 门店资料:房台资源新增 / 编辑 / 设为维护 / 恢复可用;总部可改门店资料。\n- 门店连锁:总部新建门店,套餐不含连锁能力时显示后端原因。\n- 动态调价:按规则生成按钮,按来源标注建议。\n- 客户端把参数校验失败的具体字段带进提示。\n\n参考数据引导:\n- 节假日日历、内容模板、合规法规抽到 prisma/reference-data.ts,种子与引导共用。\n- npm run bootstrap:reference 只补缺、不删除、可重复、并发安全;\n 容器入口在迁移后默认执行。模板不再带编造的使用量;热点是样例,不进引导。\n\n验证:后端 99 文件 925 条、接口覆盖 252/254(基线 2 未变);前端整链通过;\n浏览器完整回归 256 通过 / 2 按设计跳过,含刚注册空商户的冷启动场景。\n规则见 docs/contracts/pricing-suggestion-rules.md,\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\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/8dea76f88dbc1d25b9138740a700858621193fcf","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-04T01:23:02-07:00","added":["docs/contracts/pricing-suggestion-rules.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/prisma/bootstrap-reference.ts","server/prisma/migrations/20261004072931_pricing_suggestion_source/migration.sql","server/prisma/reference-data.ts","server/src/modules/pricing/generator.ts","server/test/r61-pricing-generator.test.ts","server/test/r62-reference-bootstrap.test.ts","团购本地生活AI运营App/scripts/test-setup-screens.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","e2e/package.json","server/docker-entrypoint.sh","server/package.json","server/prisma/schema.prisma","server/prisma/seed.ts","server/src/middleware/entitlement.ts","server/src/modules/pricing/routes.ts","server/src/modules/pricing/service.ts","server/src/openapi.ts","server/test/r39-entitlement.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/package.json","团购本地生活AI运营App/screen-governance.generated.json","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.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":92762,"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-04T15:23: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
|
8
|
1791125241
|
1791125332
|
0
|
1791117721
|
1791125332
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25222
|
fix(setup): 房台恢复可用按预约回到应有状态;下架的套餐可以重新上架
|
51
|
5
|
ci.yml
|
80
|
5
|
0
|
refs/heads/main
|
5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8dea76f88dbc1d25b9138740a700858621193fcf","after":"5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/8dea76f88dbc1d25b9138740a700858621193fcf...5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5","commits":[{"id":"5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5","message":"fix(setup): 房台恢复可用按预约回到应有状态;下架的套餐可以重新上架\n\n房台从维护 / 锁定恢复:\n- 之前点「恢复可用」一律回到空闲。房台上还挂着预约时状态和预约对不上;\n 顾客已签到的房台被恢复成空闲后,这单无法再完成(空闲不能进入待清洁)。\n- 现在 POST /resources/:id/transition 的 to=FREE 表示「恢复可用」:\n 有人已签到或在用回到使用中,还有待确认 / 已预约的回到已预订,都没有才是空闲。\n 使用中的房台请求空闲照旧 400。与预约创建 / 签到共用房台行锁。\n- 房台列表和详情带 activeBookings(未结束的预约数)。\n- 设为维护或锁定时房台上还有未结束的预约,生成一条指向预约履约的通知。\n- 门店资料:房台行显示未结束的预约数;设为维护前的确认写明受影响的预约数;\n 恢复后的提示按实际状态说。\n\n下架的套餐重新上架:\n- GET /skus?includeInactive=true 连已下架的一起返回(每行带 active),\n 仅店长和总部可用,店员 403,参数不是 true / false 返回 400;默认仍只返回在售。\n- 产品定价页对店长和总部多一节「已下架套餐」,可重新上架。\n\n没有做:维护不会自动改约或取消预约;历史上被错误恢复成空闲的房台不会自动订正。\n\n验证:后端 99 文件 929 条、接口覆盖 252/254(基线 2 未变);前端整链、lint、构建通过;\n浏览器完整回归 258 通过 / 2 按设计跳过。过程中两次与本批无关的失败\n(休眠唤醒后的时钟余量、两套测试并行抢 CPU)已在记录里照实写明,重跑均通过。\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\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/5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5","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-04T10:50:38-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/src/modules/resources/service.ts","server/src/modules/skus/routes.ts","server/src/modules/skus/service.ts","server/src/openapi.ts","server/test/r2-ops.test.ts","server/test/r32-resources.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-setup-screens.mjs","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5","message":"fix(setup): 房台恢复可用按预约回到应有状态;下架的套餐可以重新上架\n\n房台从维护 / 锁定恢复:\n- 之前点「恢复可用」一律回到空闲。房台上还挂着预约时状态和预约对不上;\n 顾客已签到的房台被恢复成空闲后,这单无法再完成(空闲不能进入待清洁)。\n- 现在 POST /resources/:id/transition 的 to=FREE 表示「恢复可用」:\n 有人已签到或在用回到使用中,还有待确认 / 已预约的回到已预订,都没有才是空闲。\n 使用中的房台请求空闲照旧 400。与预约创建 / 签到共用房台行锁。\n- 房台列表和详情带 activeBookings(未结束的预约数)。\n- 设为维护或锁定时房台上还有未结束的预约,生成一条指向预约履约的通知。\n- 门店资料:房台行显示未结束的预约数;设为维护前的确认写明受影响的预约数;\n 恢复后的提示按实际状态说。\n\n下架的套餐重新上架:\n- GET /skus?includeInactive=true 连已下架的一起返回(每行带 active),\n 仅店长和总部可用,店员 403,参数不是 true / false 返回 400;默认仍只返回在售。\n- 产品定价页对店长和总部多一节「已下架套餐」,可重新上架。\n\n没有做:维护不会自动改约或取消预约;历史上被错误恢复成空闲的房台不会自动订正。\n\n验证:后端 99 文件 929 条、接口覆盖 252/254(基线 2 未变);前端整链、lint、构建通过;\n浏览器完整回归 258 通过 / 2 按设计跳过。过程中两次与本批无关的失败\n(休眠唤醒后的时钟余量、两套测试并行抢 CPU)已在记录里照实写明,重跑均通过。\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\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/5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5","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-04T10:50:38-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/src/modules/resources/service.ts","server/src/modules/skus/routes.ts","server/src/modules/skus/service.ts","server/src/openapi.ts","server/test/r2-ops.test.ts","server/test/r32-resources.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-setup-screens.mjs","开发计划.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":93058,"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-04T20:42:01+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
|
1791160349
|
1791160764
|
0
|
1791160347
|
1791160764
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25224
|
fix(setup): 选填字段可以清空;套餐主数据只由总部维护
|
51
|
5
|
ci.yml
|
82
|
5
|
0
|
refs/heads/main
|
80ef8d68e96afb51f1b6b62cc34883f0d7712b06
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5","after":"80ef8d68e96afb51f1b6b62cc34883f0d7712b06","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/5cff46dfd5d7f08cd2767aa030e973b3cb2cebd5...80ef8d68e96afb51f1b6b62cc34883f0d7712b06","commits":[{"id":"80ef8d68e96afb51f1b6b62cc34883f0d7712b06","message":"fix(setup): 选填字段可以清空;套餐主数据只由总部维护\n\n选填字段清空:\n- 之前套餐的单场时长、房台的容纳人数和最低消费填过就清不掉(界面直接报\n 「接口不支持清空」),文字类选填项清空后在库里留空字符串。\n- PATCH /skus/:id 的 durationText / sessionMinutes / rule / goal / margin,\n PATCH /resources/:id 的 floor / zone / capacity / minChargeYuan 接受 null 表示清空。\n- 文字类选填项传空字符串或全空白,新建和修改都存成 null。\n- 房台数字类选填项传空字符串:新建按没填、修改按清空。之前空字符串会被数字转换\n 当成 0,最低消费悄悄变成 0 元。\n- 必填项不接受 null,照旧 400。\n- 界面:编辑表单把清空的选填项按 null 提交;清空单场时长前提示后果\n (顾客端不能在线预约、新建预约不再按时长排期)。\n\n套餐只由总部维护(权限收回):\n- 之前店长可以新建 / 修改 / 下架 / 重新上架套餐。套餐是全商户共用的主数据,\n 连锁商户里一个门店的店长改了,其他门店一起变。\n- POST / PATCH / DELETE /skus 与 GET /skus?includeInactive=true 只给老板和总部运营;\n 店长、店员 403,仍可读在售套餐。与产品设计里店长「仅本店」的范围、\n 以及门店资料修改和新建门店已是总部专属的做法一致。\n- 店长在产品定价页只读,页面说明由谁维护;采纳调价建议改本店价不受影响。\n- 单店商户的店长同样不能再改套餐,没有开例外;没有做「手动设本店价」的入口。\n\n接口文档:请求体写法支持「类型|null」,生成 nullable。\n\n验证:后端 99 文件 931 条、接口覆盖 252/254(基线 2 未变);前端整链、lint、构建通过;\n浏览器完整回归 262 通过 / 2 按设计跳过 / 0 失败(两套先后单独运行)。\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\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/80ef8d68e96afb51f1b6b62cc34883f0d7712b06","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-04T18:13:15-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/src/modules/resources/schema.ts","server/src/modules/resources/service.ts","server/src/modules/skus/routes.ts","server/src/modules/skus/schema.ts","server/src/modules/skus/service.ts","server/src/openapi.ts","server/test/r2-ops.test.ts","server/test/r32-resources.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-setup-screens.mjs","开发计划.md"]}],"total_commits":0,"head_commit":{"id":"80ef8d68e96afb51f1b6b62cc34883f0d7712b06","message":"fix(setup): 选填字段可以清空;套餐主数据只由总部维护\n\n选填字段清空:\n- 之前套餐的单场时长、房台的容纳人数和最低消费填过就清不掉(界面直接报\n 「接口不支持清空」),文字类选填项清空后在库里留空字符串。\n- PATCH /skus/:id 的 durationText / sessionMinutes / rule / goal / margin,\n PATCH /resources/:id 的 floor / zone / capacity / minChargeYuan 接受 null 表示清空。\n- 文字类选填项传空字符串或全空白,新建和修改都存成 null。\n- 房台数字类选填项传空字符串:新建按没填、修改按清空。之前空字符串会被数字转换\n 当成 0,最低消费悄悄变成 0 元。\n- 必填项不接受 null,照旧 400。\n- 界面:编辑表单把清空的选填项按 null 提交;清空单场时长前提示后果\n (顾客端不能在线预约、新建预约不再按时长排期)。\n\n套餐只由总部维护(权限收回):\n- 之前店长可以新建 / 修改 / 下架 / 重新上架套餐。套餐是全商户共用的主数据,\n 连锁商户里一个门店的店长改了,其他门店一起变。\n- POST / PATCH / DELETE /skus 与 GET /skus?includeInactive=true 只给老板和总部运营;\n 店长、店员 403,仍可读在售套餐。与产品设计里店长「仅本店」的范围、\n 以及门店资料修改和新建门店已是总部专属的做法一致。\n- 店长在产品定价页只读,页面说明由谁维护;采纳调价建议改本店价不受影响。\n- 单店商户的店长同样不能再改套餐,没有开例外;没有做「手动设本店价」的入口。\n\n接口文档:请求体写法支持「类型|null」,生成 nullable。\n\n验证:后端 99 文件 931 条、接口覆盖 252/254(基线 2 未变);前端整链、lint、构建通过;\n浏览器完整回归 262 通过 / 2 按设计跳过 / 0 失败(两套先后单独运行)。\n记录见 docs/setup-and-generators-governance-2026-10-04.md。\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/80ef8d68e96afb51f1b6b62cc34883f0d7712b06","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-04T18:13:15-07:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docs/setup-and-generators-governance-2026-10-04.md","e2e/tests/17-setup-screens.spec.ts","server/src/modules/resources/schema.ts","server/src/modules/resources/service.ts","server/src/modules/skus/routes.ts","server/src/modules/skus/schema.ts","server/src/modules/skus/service.ts","server/src/openapi.ts","server/test/r2-ops.test.ts","server/test/r32-resources.test.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-more.jsx","团购本地生活AI运营App/screens-strategy.jsx","团购本地生活AI运营App/scripts/test-setup-screens.mjs","开发计划.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":93244,"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-05T08:32: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
|
8
|
1791163361
|
1791163536
|
0
|
1791163359
|
1791163536
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
25226
|
docs(deploy): record restored service and release docs(deploy): record restored service and release boundaries...
|
57
|
5
|
governance.yml
|
237
|
5
|
0
|
refs/heads/main
|
4b6378cb80cd602a26e25a066b9c302d50b981df
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fcf2069901b8469ddeda090ed580fe0eb0c934aa","after":"4b6378cb80cd602a26e25a066b9c302d50b981df","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/fcf2069901b8469ddeda090ed580fe0eb0c934aa...4b6378cb80cd602a26e25a066b9c302d50b981df","commits":[{"id":"4b6378cb80cd602a26e25a066b9c302d50b981df","message":"docs(deploy): record restored service and release boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4b6378cb80cd602a26e25a066b9c302d50b981df","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-04T19:38:58-07:00","added":["docs/governance/log/2026-10-04-redeploy.md","docs/releases/2026-10-04-redeploy.md"],"removed":[],"modified":["CLAUDE.md","docs/deploy-vm.md","docs/product/acceptance-and-status.md","docs/product/material-governance.md","docs/releases/current.md"]},{"id":"0a94c617db70819c160119ef7b7902678ef3ce3a","message":"test(gates): freeze seven passed gates and blocked release audit\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0a94c617db70819c160119ef7b7902678ef3ce3a","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-04T19:38:58-07:00","added":["reports/redeploy-2026-10-04/README.md","reports/redeploy-2026-10-04/backup-integrity.json","reports/redeploy-2026-10-04/dependency-audit.json","reports/redeploy-2026-10-04/failed-public-file-prefix.json","reports/redeploy-2026-10-04/inference-acceptance.json","reports/redeploy-2026-10-04/main-sync.json","reports/redeploy-2026-10-04/migration-preflight.json","reports/redeploy-2026-10-04/production-acceptance.json","reports/redeploy-2026-10-04/public-file-acceptance.json","reports/redeploy-2026-10-04/release-preflight.json","reports/redeploy-2026-10-04/restoration-verification.json","reports/redeploy-2026-10-04/runtime-acceptance.json","reports/redeploy-2026-10-04/script-acceptance.json","reports/redeploy-2026-10-04/shijie-acceptance.json","reports/redeploy-2026-10-04/ui-acceptance.json","reports/redeploy-2026-10-04/verification.json"],"removed":[],"modified":["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/render-job-drainability.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/script-acceptance.latest.json","reports/shijie-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"]},{"id":"eddd9b0c438ad4ab553f51d5b2179f037f05c537","message":"test(ui): refresh browser evidence for redeploy candidate\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/eddd9b0c438ad4ab553f51d5b2179f037f05c537","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-04T19:38:09-07:00","added":[],"removed":[],"modified":["reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-desktop.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/content-formal-delivery-ui.png","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/external-video-source-ui.png","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/material-publication-ui.png","reports/model-api-key-saved.png","reports/model-billing-ui.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","reports/prd-retry.mobile.png","reports/prd-review.desktop.png","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-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/script-generation-queue.png","reports/storyboard-asset-dialog.desktop.png","reports/storyboard-frame-dialog.desktop.first.png","reports/storyboard-frame-dialog.desktop.last.png","reports/storyboard-frame-dialog.mobile.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-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/ui-acceptance.desktop.png","reports/ui-acceptance.draft-import.png","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/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},{"id":"8ee52f803993bbbeeca2a6ac0d44a6ebe67eb342","message":"fix(release): pin reviewed schema bytes for each backend\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8ee52f803993bbbeeca2a6ac0d44a6ebe67eb342","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-04T19:31:16-07:00","added":["deploy/vm/fixtures/material-governance-v1-fastify.prisma"],"removed":[],"modified":["deploy/vm/release.py","deploy/vm/release_test.py","docs/releases/migrations/2026-10-04-material-governance.json","scripts/release-policy.test.mjs"]}],"total_commits":0,"head_commit":{"id":"4b6378cb80cd602a26e25a066b9c302d50b981df","message":"docs(deploy): record restored service and release boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/4b6378cb80cd602a26e25a066b9c302d50b981df","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-04T19:38:58-07:00","added":["docs/governance/log/2026-10-04-redeploy.md","docs/releases/2026-10-04-redeploy.md"],"removed":[],"modified":["CLAUDE.md","docs/deploy-vm.md","docs/product/acceptance-and-status.md","docs/product/material-governance.md","docs/releases/current.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":1008599,"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":42,"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-10-04T11:58: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":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
|
3
|
4
|
1791168073
|
1791168141
|
0
|
1791168072
|
1791168141
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25227
|
docs(deploy): verify main sync and final service c docs(deploy): verify main sync and final service cleanup...
|
57
|
5
|
governance.yml
|
238
|
5
|
0
|
refs/heads/main
|
0430e7e07522a0283fb6baf65978368cb42d246d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4b6378cb80cd602a26e25a066b9c302d50b981df","after":"0430e7e07522a0283fb6baf65978368cb42d246d","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/4b6378cb80cd602a26e25a066b9c302d50b981df...0430e7e07522a0283fb6baf65978368cb42d246d","commits":[{"id":"0430e7e07522a0283fb6baf65978368cb42d246d","message":"docs(deploy): verify main sync and final service cleanup\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0430e7e07522a0283fb6baf65978368cb42d246d","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-04T19:42:18-07:00","added":["reports/redeploy-2026-10-04/final-service-verification.json"],"removed":[],"modified":["reports/governance-docs.latest.json","reports/redeploy-2026-10-04/README.md","reports/redeploy-2026-10-04/main-sync.json"]}],"total_commits":0,"head_commit":{"id":"0430e7e07522a0283fb6baf65978368cb42d246d","message":"docs(deploy): verify main sync and final service cleanup\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/0430e7e07522a0283fb6baf65978368cb42d246d","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-04T19:42:18-07:00","added":["reports/redeploy-2026-10-04/final-service-verification.json"],"removed":[],"modified":["reports/governance-docs.latest.json","reports/redeploy-2026-10-04/README.md","reports/redeploy-2026-10-04/main-sync.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":1021329,"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":42,"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-10-05T10:41: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
|
4
|
1791168163
|
1791168224
|
0
|
1791168141
|
1791168224
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25234
|
docs(operations): record local OS restart
|
76
|
5
|
governance.yml
|
160
|
5
|
0
|
refs/heads/main
|
b5b504aec5ab1199aecd415d36c439b993d134e7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"df2aef526eda9ed1dc816004cde4d617e5e0c1dd","after":"b5b504aec5ab1199aecd415d36c439b993d134e7","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/df2aef526eda9ed1dc816004cde4d617e5e0c1dd...b5b504aec5ab1199aecd415d36c439b993d134e7","commits":[{"id":"b5b504aec5ab1199aecd415d36c439b993d134e7","message":"docs(operations): record local OS restart\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/b5b504aec5ab1199aecd415d36c439b993d134e7","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-08T22:32:13-07:00","added":["docs/operations/local-restart-2026-10-08.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"b5b504aec5ab1199aecd415d36c439b993d134e7","message":"docs(operations): record local OS restart\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/b5b504aec5ab1199aecd415d36c439b993d134e7","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-08T22:32:13-07:00","added":["docs/operations/local-restart-2026-10-08.md"],"removed":[],"modified":[]},"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":99383,"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":3,"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-09-27T10:19: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
|
36
|
1791523942
|
1791524976
|
0
|
1791523941
|
1791525097
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25293
|
chore(reports): rebind static closure to fa5cbff; chore(reports): rebind static closure to fa5cbff; preserve 8207890 runtime evidence...
|
82
|
5
|
governance.yml
|
9
|
5
|
0
|
refs/heads/main
|
f66d2385a43e94bf571c676398600da2b910199a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a85a595e93e12dd69e2d29151703ad272f568c4c","after":"f66d2385a43e94bf571c676398600da2b910199a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/a85a595e93e12dd69e2d29151703ad272f568c4c...f66d2385a43e94bf571c676398600da2b910199a","commits":[{"id":"f66d2385a43e94bf571c676398600da2b910199a","message":"chore(reports): rebind static closure to fa5cbff; preserve 8207890 runtime evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/f66d2385a43e94bf571c676398600da2b910199a","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-09T18:17:44-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.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/governance.latest.json","reports/identity-boundary.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/transactional-write-chain.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},{"id":"fa5cbff33867eeb05c642de341bfbc519a422412","message":"docs(C16): preserve fixed-source acceptance and tighten mandatory regression floors\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/fa5cbff33867eeb05c642de341bfbc519a422412","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-09T18:16:57-07:00","added":["docs/evidence/c16-realtime-consumer-2026-10-09/attempts.json","docs/evidence/c16-realtime-consumer-2026-10-09/governance-required.json","docs/evidence/c16-realtime-consumer-2026-10-09/runtime-acceptance.json","docs/evidence/c16-realtime-consumer-2026-10-09/scope-and-special-tests.json","docs/evidence/c16-realtime-consumer-2026-10-09/ui-acceptance.json"],"removed":[],"modified":["CLAUDE.md","docs/C16实时讨论消费者实施记录-2026-10-09.md","reports/baseline.json"]},{"id":"de3c330cc1b49a47cb782755844b2f55f41f2199","message":"chore(reports): bind C16 consumer checks to clean 8207890 (351 runtime, 28 browser)\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/de3c330cc1b49a47cb782755844b2f55f41f2199","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-09T18:16:06-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.latest.json","reports/configuration-consumer.latest.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/identity-boundary.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/transactional-write-chain.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/write-governance.latest.json"]},{"id":"8207890430f149c1857d709c981e9eafad40dd0c","message":"feat(C16): consume authorized realtime hints and explicit read positions in ticket discussions\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/8207890430f149c1857d709c981e9eafad40dd0c","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-09T17:55:48-07:00","added":["apps/web/src/lib/discussion-hints.ts","docs/C16实时讨论消费者实施记录-2026-10-09.md","packages/collaboration-conversation/src/hint-relay.test.ts","packages/collaboration-conversation/src/hint-relay.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/ticket-discussion.ts","apps/api-fastify/test/ticket-discussion.acceptance.test.ts","apps/api-nestjs/src/ticket-discussion/ticket-discussion.controller.ts","apps/api-nestjs/src/ticket-discussion/ticket-discussion.service.ts","apps/api-nestjs/test/ticket-discussion.acceptance.test.ts","apps/api-nestjs/test/ticket-discussion.platform-real.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/api/[...path]/route.ts","apps/web/src/components/TicketsPanel.tsx","apps/web/src/lib/api.ts","packages/collaboration-conversation/README.md","packages/collaboration-conversation/src/index.test.ts","packages/collaboration-conversation/src/index.ts","packages/contracts/src/ticket-discussion.test.ts","packages/contracts/src/ticket-discussion.ts"]}],"total_commits":0,"head_commit":{"id":"f66d2385a43e94bf571c676398600da2b910199a","message":"chore(reports): rebind static closure to fa5cbff; preserve 8207890 runtime evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/f66d2385a43e94bf571c676398600da2b910199a","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-09T18:17:44-07:00","added":[],"removed":[],"modified":["reports/agent-workflow-parity.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/governance.latest.json","reports/identity-boundary.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/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":2770,"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":2,"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-24T09:12: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
|
1791595085
|
1791595115
|
0
|
1791595073
|
1791595115
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25343
|
docs(gaps): 2026-10-09 缺口清单与治理缺口登记
|
57
|
5
|
governance.yml
|
239
|
5
|
0
|
refs/heads/main
|
47141f914ffb9f5d389d13877e8e1f2fe4b59038
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0430e7e07522a0283fb6baf65978368cb42d246d","after":"47141f914ffb9f5d389d13877e8e1f2fe4b59038","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/0430e7e07522a0283fb6baf65978368cb42d246d...47141f914ffb9f5d389d13877e8e1f2fe4b59038","commits":[{"id":"47141f914ffb9f5d389d13877e8e1f2fe4b59038","message":"docs(gaps): 2026-10-09 缺口清单与治理缺口登记\n\n新建 docs/product/module-gaps-2026-10-09.md 取代 10-03 版(旧版留作快照并加注),合并代码模块缺口 MG-01~MG-11、治理缺口 G8~G36、09-11 深度分析台账残余与仓库卫生,按主干 0430e7e0 与线上 591c7732 逐条核对;新增发布与运行 R1~R6(braces 阻塞发布、主干领先线上一个模块代际、CI 红盘、线上 1 条 isolated UNKNOWN、停服原因未确证、发布产物保留策略未执行)。\n\nCLAUDE.md:G22 升 P1(发布链被 braces 开发依赖阻塞,在途 fix/drop-braces-20261009);新登记 G35(主干领先线上)与 G36(企业控制面接入未登记);真源地图订正深挖分析指向、ADR 计数 0001–0023、启动态探活报告时效。\n\n20 处现行文档链接改指 10-09 清单(治理日志与历史报告保持原指向);新增 docs/governance/log/2026-10-09-gap-inventory.md;静态报告随 check:governance 重生成(时间戳与 governanceDocLines 251)。仅文档,源码指纹 592be560… 不变,不部署。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/47141f914ffb9f5d389d13877e8e1f2fe4b59038","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-10T00:19:16-07:00","added":["docs/governance/log/2026-10-09-gap-inventory.md","docs/product/module-gaps-2026-10-09.md"],"removed":[],"modified":["CLAUDE.md","docs/README.md","docs/architecture.md","docs/browser-enterprise-login.md","docs/deploy-vm.md","docs/development-experience/README.md","docs/development-experience/playbook.md","docs/domain/owner-matrix.md","docs/governance/archive/README.md","docs/model-credentials.md","docs/product/acceptance-and-status.md","docs/product/advanced-image-skills.md","docs/product/business-blueprint-2026-09-05.md","docs/product/content-creation-workbench.md","docs/product/controlled-ai-material-factory.md","docs/product/creative-pipeline-design.md","docs/product/creative-workflow-analysis.md","docs/product/material-governance.md","docs/product/module-gaps-2026-10-03.md","docs/product/platform-module-map.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","docs/视频和图片流程优化清单.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/render-job-drainability.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":"47141f914ffb9f5d389d13877e8e1f2fe4b59038","message":"docs(gaps): 2026-10-09 缺口清单与治理缺口登记\n\n新建 docs/product/module-gaps-2026-10-09.md 取代 10-03 版(旧版留作快照并加注),合并代码模块缺口 MG-01~MG-11、治理缺口 G8~G36、09-11 深度分析台账残余与仓库卫生,按主干 0430e7e0 与线上 591c7732 逐条核对;新增发布与运行 R1~R6(braces 阻塞发布、主干领先线上一个模块代际、CI 红盘、线上 1 条 isolated UNKNOWN、停服原因未确证、发布产物保留策略未执行)。\n\nCLAUDE.md:G22 升 P1(发布链被 braces 开发依赖阻塞,在途 fix/drop-braces-20261009);新登记 G35(主干领先线上)与 G36(企业控制面接入未登记);真源地图订正深挖分析指向、ADR 计数 0001–0023、启动态探活报告时效。\n\n20 处现行文档链接改指 10-09 清单(治理日志与历史报告保持原指向);新增 docs/governance/log/2026-10-09-gap-inventory.md;静态报告随 check:governance 重生成(时间戳与 governanceDocLines 251)。仅文档,源码指纹 592be560… 不变,不部署。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/47141f914ffb9f5d389d13877e8e1f2fe4b59038","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-10T00:19:16-07:00","added":["docs/governance/log/2026-10-09-gap-inventory.md","docs/product/module-gaps-2026-10-09.md"],"removed":[],"modified":["CLAUDE.md","docs/README.md","docs/architecture.md","docs/browser-enterprise-login.md","docs/deploy-vm.md","docs/development-experience/README.md","docs/development-experience/playbook.md","docs/domain/owner-matrix.md","docs/governance/archive/README.md","docs/model-credentials.md","docs/product/acceptance-and-status.md","docs/product/advanced-image-skills.md","docs/product/business-blueprint-2026-09-05.md","docs/product/content-creation-workbench.md","docs/product/controlled-ai-material-factory.md","docs/product/creative-pipeline-design.md","docs/product/creative-workflow-analysis.md","docs/product/material-governance.md","docs/product/module-gaps-2026-10-03.md","docs/product/platform-module-map.md","docs/product/pro-video-platform-progress.md","docs/releases/current.md","docs/视频和图片流程优化清单.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/render-job-drainability.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":1021344,"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":42,"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-10-05T10:42: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":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
|
1791616763
|
1791616794
|
0
|
1791616762
|
1791616794
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25348
|
docs(deps): 钉版登记补全十条 overrides 与上游复核
|
57
|
5
|
governance.yml
|
240
|
5
|
0
|
refs/heads/main
|
f951eb80a110d722cbb4bacdd4222e09fdae2a67
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"47141f914ffb9f5d389d13877e8e1f2fe4b59038","after":"f951eb80a110d722cbb4bacdd4222e09fdae2a67","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/47141f914ffb9f5d389d13877e8e1f2fe4b59038...f951eb80a110d722cbb4bacdd4222e09fdae2a67","commits":[{"id":"f951eb80a110d722cbb4bacdd4222e09fdae2a67","message":"docs(deps): 钉版登记补全十条 overrides 与上游复核\n\n登记页页首写「当前五条」,实际 package.json 有十条:f5d27669(10-04 模块补全轮)\n新增 brace-expansion@1/@5、fast-uri@3/@4、dompurify 并把 multer 抬到 2.4.0 时\n未同步本页。按 10-04 治理日志与修复前审计报告补登引入提交、GHSA 编号与修复下限;\n十条逐一 pnpm why + npm view 只读复核上游,删除只列为建议(multer 待 @nestjs/*\n≥ 11.2.6;五条 caret 范围型须实测;vite 单独验兼容;其余三条保留)。\n\n仅文档,package.json / 锁文件 / 源码指纹 592be560… 不变;check:governance-docs 通过。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f951eb80a110d722cbb4bacdd4222e09fdae2a67","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-10T00:47:03-07:00","added":["docs/governance/log/2026-10-10-dependency-overrides.md"],"removed":[],"modified":["docs/dependency-overrides.md","reports/governance-docs.latest.json"]}],"total_commits":0,"head_commit":{"id":"f951eb80a110d722cbb4bacdd4222e09fdae2a67","message":"docs(deps): 钉版登记补全十条 overrides 与上游复核\n\n登记页页首写「当前五条」,实际 package.json 有十条:f5d27669(10-04 模块补全轮)\n新增 brace-expansion@1/@5、fast-uri@3/@4、dompurify 并把 multer 抬到 2.4.0 时\n未同步本页。按 10-04 治理日志与修复前审计报告补登引入提交、GHSA 编号与修复下限;\n十条逐一 pnpm why + npm view 只读复核上游,删除只列为建议(multer 待 @nestjs/*\n≥ 11.2.6;五条 caret 范围型须实测;vite 单独验兼容;其余三条保留)。\n\n仅文档,package.json / 锁文件 / 源码指纹 592be560… 不变;check:governance-docs 通过。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f951eb80a110d722cbb4bacdd4222e09fdae2a67","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-10T00:47:03-07:00","added":["docs/governance/log/2026-10-10-dependency-overrides.md"],"removed":[],"modified":["docs/dependency-overrides.md","reports/governance-docs.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":1021563,"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":42,"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-10-10T15:19:22+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
|
1791618435
|
1791618525
|
0
|
1791618434
|
1791618525
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25350
|
docs(governance): 依赖修复回灌基线表与真源地图,dependency-audit docs(governance): 依赖修复回灌基线表与真源地图,dependency-audit 转绿...
|
57
|
5
|
governance.yml
|
241
|
5
|
0
|
refs/heads/main
|
dff2d8a2513bf34c984342454e3698dc04400ef0
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f951eb80a110d722cbb4bacdd4222e09fdae2a67","after":"dff2d8a2513bf34c984342454e3698dc04400ef0","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f951eb80a110d722cbb4bacdd4222e09fdae2a67...dff2d8a2513bf34c984342454e3698dc04400ef0","commits":[{"id":"dff2d8a2513bf34c984342454e3698dc04400ef0","message":"docs(governance): 依赖修复回灌基线表与真源地图,dependency-audit 转绿\n\n- CLAUDE.md:十个重型行与依赖审计行绑定 956e462e…;dependency-audit 🟡 → ✅;\n heavy-report-consistency、真源地图依赖漏洞 / 前端技术栈行与 G22 同步(发布阻塞解除,\n 镜像扫描仍开放)。部署状态仍以 docs/releases/current.md 为准,本提交不宣称上线。\n- 治理记录 docs/governance/log/2026-10-10-dependency-remediation.md:六个源码提交、\n 四轮验收与整站截图逐张核对的结论。\n- 产品验收页订正依赖审计口径;静态链 pnpm check exit 0,重型报告文档漂移 0。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dff2d8a2513bf34c984342454e3698dc04400ef0","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-10T01:29:39-07:00","added":["docs/governance/log/2026-10-10-dependency-remediation.md"],"removed":[],"modified":["CLAUDE.md","docs/product/acceptance-and-status.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/render-job-drainability.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"]},{"id":"053be7f620fda4819e7dba3c4bb4c7d1984a1624","message":"test(gates): 七项业务门禁与完整依赖审计在 956e462e 指纹下的报告与截图\n\n一次性 braces1010-* 容器(PostgreSQL 16 / Redis 7 / MinIO / ClamAV)与工作树内 sidecar 上执行:\ncheck:deps 运行时与全依赖 0;runtime / ui / inference / script / shijie / production /\npublic-file 均 passed。证据目录 reports/dependency-remediation-2026-10-10/ 含冻结报告、\n逐类计算样式比对与机制实验、77 张截图对 10-04 基线的逐张差异(附运行噪声基线)。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/053be7f620fda4819e7dba3c4bb4c7d1984a1624","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-10T01:25:56-07:00","added":["reports/dependency-remediation-2026-10-10/README.md","reports/dependency-remediation-2026-10-10/dependency-audit.json","reports/dependency-remediation-2026-10-10/inference-acceptance.json","reports/dependency-remediation-2026-10-10/production-acceptance.json","reports/dependency-remediation-2026-10-10/public-file-acceptance.json","reports/dependency-remediation-2026-10-10/runtime-acceptance.json","reports/dependency-remediation-2026-10-10/screenshot-diff.json","reports/dependency-remediation-2026-10-10/script-acceptance.json","reports/dependency-remediation-2026-10-10/shijie-acceptance.json","reports/dependency-remediation-2026-10-10/tailwind-parity/anim-test.cjs","reports/dependency-remediation-2026-10-10/tailwind-parity/build-v4.cjs","reports/dependency-remediation-2026-10-10/tailwind-parity/compare.cjs","reports/dependency-remediation-2026-10-10/tailwind-parity/computed-style-summary.json","reports/dependency-remediation-2026-10-10/tailwind-parity/dialog-test.cjs","reports/dependency-remediation-2026-10-10/tailwind-parity/extract-pairs.mjs","reports/dependency-remediation-2026-10-10/tailwind-parity/inherit-test.cjs","reports/dependency-remediation-2026-10-10/tailwind-parity/space-test.cjs","reports/dependency-remediation-2026-10-10/ui-acceptance.json"],"removed":[],"modified":["reports/admin-brands.desktop.png","reports/admin-brands.mobile.png","reports/admin-mobile.png","reports/content-detail.brief-desktop.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-desktop.png","reports/content-detail.output-mobile.png","reports/content-detail.plans-desktop.png","reports/content-detail.review-desktop.png","reports/content-formal-delivery-ui.png","reports/creative-history-hidden.desktop.png","reports/creative-history-restore.mobile.png","reports/creative-quality.desktop.png","reports/dependency-audit.latest.json","reports/external-video-source-ui.png","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-mobile-form.png","reports/image-edit-result.png","reports/inference-acceptance.latest.json","reports/material-publication-ui.png","reports/model-api-key-saved.png","reports/model-billing-ui.png","reports/model-credential-error.desktop.png","reports/model-credential-error.mobile.png","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-single-tenant-create.desktop.png","reports/production-single-tenant-separation.desktop.png","reports/public-file-acceptance.latest.json","reports/runtime-acceptance.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-asset-dialog.mobile.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-making.390.png","reports/template-making.768.png","reports/template-preview.edit.png","reports/template-preview.templates.png","reports/template-save-ready.APPLICATION.png","reports/template-save-ready.GENERAL.png","reports/template-save-ready.SCENE.png","reports/template-saved-master.APPLICATION.png","reports/template-saved-master.GENERAL.png","reports/template-types.desktop.png","reports/template-types.mobile.png","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.mobile.png","reports/ux-intake.desktop.png","reports/video-batch-paused.mobile.png","reports/video-regenerate-2026-09-08/desktop.png","reports/video-regenerate-2026-09-08/mobile.png"]},{"id":"3854c9b47d1fce65f71efbce878c33f2aa83ff61","message":"fix(web): space-y 兼容规则不分层,与 CSS Module 按特异性比较\n\n上一提交把 v3 space-y 规则放进 @layer utilities,任何不分层的 CSS Module 边距都会反压过来:\n后台模型配置页 space-y-8 内的 .section { margin-top: 24px } 胜出,区块间距由 32px 变为 24px\n(第三轮截图 model-api-key-saved 上移 8px)。v3 工具类本就不分层、按特异性与 module 规则比较。\n\n强制边距规则移出 cascade layer,dialog 排除改用 :where(:not(dialog)),特异性与 v3 完全相同\n(0,3,0);抵消首元素下边距的零特异性规则仍留在 utilities 层。七种结构(含 module 上 / 下边距)\n在 v3 / v4 下位置逐像素一致。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/3854c9b47d1fce65f71efbce878c33f2aa83ff61","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-10T01:10:59-07:00","added":[],"removed":[],"modified":["apps/web/src/app/tailwind-v3-compat.css"]},{"id":"896f412c82d7e2b4fa57a527ad6874f9bfcdceb2","message":"fix(web): 恢复 v3 的 space-y 语义,子元素自带边距不再改变间距\n\nv3 的 space-y 用高特异性选择器给非首个子元素设上边距、清零下边距,子元素自带的 mt-/mb-\n被覆盖;v4 改为零特异性的「非末尾子元素下边距」,子元素自带边距反而生效。第二轮整站截图中\n新建模板弹窗的「模板预览」标题与说明(mb-2 / mb-3 位于 space-y 内)因此上移 8~12px。\n\ntailwind-v3-compat.css 按 v3 规则重新声明默认间距刻度全部 35 档,并抵消 v4 在首个子元素上\n加的下边距;原生 dialog 不参与,保持 m-auto 居中(v3 下被兄弟间距挤成贴顶,非设计本意)。\n四种结构(子元素自带 mb、首元素自带边距、首元素 hidden、半档间距)在 v3 / v4 下位置逐像素一致。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/896f412c82d7e2b4fa57a527ad6874f9bfcdceb2","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-10T00:56:39-07:00","added":[],"removed":[],"modified":["apps/web/src/app/tailwind-v3-compat.css"]},{"id":"a5f17c59dbf9bcfc1f5579fa971deceff73bce0d","message":"fix(web): 钉回 v3 字号行高,消除 v4 行高继承差异\n\nv4 的 text-xs … text-4xl 行高从绝对值(1rem 等)改为比例(calc(1 / 0.75) 等)。元素自身\n的计算行高不变,但后代继承到比例:父级 text-xs 下的 text-[11px]、被手机端 16px 规则放大的\n输入框与文本框,行高随之变化,整站截图多处出现 1~6px 的下移。\n\ntailwind-v3-palette.css 更名为 tailwind-v3-compat.css,在色板之外加入 v3 的八档绝对行高;\n继承测试(文本框 / 任意字号 / 半像素字号)与 v3 逐项一致,逐类计算样式比对无新增差异。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/a5f17c59dbf9bcfc1f5579fa971deceff73bce0d","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-10T00:39:34-07:00","added":["apps/web/src/app/tailwind-v3-compat.css"],"removed":["apps/web/src/app/tailwind-v3-palette.css"],"modified":["apps/web/src/app/globals.css","docs/design/full-uiux-2026-09-05/03-design-system.md"]}],"total_commits":0,"head_commit":{"id":"dff2d8a2513bf34c984342454e3698dc04400ef0","message":"docs(governance): 依赖修复回灌基线表与真源地图,dependency-audit 转绿\n\n- CLAUDE.md:十个重型行与依赖审计行绑定 956e462e…;dependency-audit 🟡 → ✅;\n heavy-report-consistency、真源地图依赖漏洞 / 前端技术栈行与 G22 同步(发布阻塞解除,\n 镜像扫描仍开放)。部署状态仍以 docs/releases/current.md 为准,本提交不宣称上线。\n- 治理记录 docs/governance/log/2026-10-10-dependency-remediation.md:六个源码提交、\n 四轮验收与整站截图逐张核对的结论。\n- 产品验收页订正依赖审计口径;静态链 pnpm check exit 0,重型报告文档漂移 0。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/dff2d8a2513bf34c984342454e3698dc04400ef0","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-10T01:29:39-07:00","added":["docs/governance/log/2026-10-10-dependency-remediation.md"],"removed":[],"modified":["CLAUDE.md","docs/product/acceptance-and-status.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/render-job-drainability.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":1021586,"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":42,"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-10-10T15:47:14+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
|
1791621003
|
1791621073
|
0
|
1791621002
|
1791621073
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25363
|
docs(deploy): release-20261010-deps1 上线记录,G35 关闭
|
57
|
5
|
governance.yml
|
242
|
5
|
0
|
refs/heads/main
|
f95876e9c573be7e89a39114de8abd20348b4b9c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"dff2d8a2513bf34c984342454e3698dc04400ef0","after":"f95876e9c573be7e89a39114de8abd20348b4b9c","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/dff2d8a2513bf34c984342454e3698dc04400ef0...f95876e9c573be7e89a39114de8abd20348b4b9c","commits":[{"id":"f95876e9c573be7e89a39114de8abd20348b4b9c","message":"docs(deploy): release-20261010-deps1 上线记录,G35 关闭\n\n固定提交 dff2d8a2 / 956e462e… 部署到本机现用服务:迁移 37→41(material-governance-v1),\n五组件 healthy、11 项边界探针、release.py verify 与 GitHub Governance 工作流均通过。\n前两次因 Debian 镜像源经本机代理 503 / 断连在镜像构建阶段失败(早于切换),预热依赖层\n缓存后第三次通过。current.md、基线说明、VM 部署 / 模块补全行、G32 / G35、缺口清单\nR1~R3 与产品验收页同步;发布核验证据已去除密钥字段。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f95876e9c573be7e89a39114de8abd20348b4b9c","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-10T02:30:32-07:00","added":["docs/releases/2026-10-10-deps1.md","reports/dependency-remediation-2026-10-10/release-verification.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-10-10-dependency-remediation.md","docs/product/acceptance-and-status.md","docs/product/module-gaps-2026-10-09.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-remediation-2026-10-10/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/render-job-drainability.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":"f95876e9c573be7e89a39114de8abd20348b4b9c","message":"docs(deploy): release-20261010-deps1 上线记录,G35 关闭\n\n固定提交 dff2d8a2 / 956e462e… 部署到本机现用服务:迁移 37→41(material-governance-v1),\n五组件 healthy、11 项边界探针、release.py verify 与 GitHub Governance 工作流均通过。\n前两次因 Debian 镜像源经本机代理 503 / 断连在镜像构建阶段失败(早于切换),预热依赖层\n缓存后第三次通过。current.md、基线说明、VM 部署 / 模块补全行、G32 / G35、缺口清单\nR1~R3 与产品验收页同步;发布核验证据已去除密钥字段。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/f95876e9c573be7e89a39114de8abd20348b4b9c","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-10T02:30:32-07:00","added":["docs/releases/2026-10-10-deps1.md","reports/dependency-remediation-2026-10-10/release-verification.json"],"removed":[],"modified":["CLAUDE.md","docs/governance/log/2026-10-10-dependency-remediation.md","docs/product/acceptance-and-status.md","docs/product/module-gaps-2026-10-09.md","docs/releases/current.md","reports/contract-consumers.latest.json","reports/dependency-remediation-2026-10-10/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/render-job-drainability.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":1037455,"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":42,"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-10-10T16:30:02+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
|
1791625148
|
1791625194
|
0
|
1791624638
|
1791625194
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25369
|
test(fact): verify dev retry after outage and lost test(fact): verify dev retry after outage and lost acknowledgement...
|
83
|
5
|
governance.yml
|
60
|
5
|
0
|
refs/heads/main
|
5610cb3abf777eabb83c8c6353f13a6f1af10c5d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"14861eb6af3192643ae427d3a11efa6d0ce702db","after":"5610cb3abf777eabb83c8c6353f13a6f1af10c5d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/14861eb6af3192643ae427d3a11efa6d0ce702db...5610cb3abf777eabb83c8c6353f13a6f1af10c5d","commits":[{"id":"5610cb3abf777eabb83c8c6353f13a6f1af10c5d","message":"test(fact): verify dev retry after outage and lost acknowledgement\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/5610cb3abf777eabb83c8c6353f13a6f1af10c5d","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-10T02:41:54-07:00","added":["docs/domain/fact-dev-recovery-acceptance-2026-10-10.md"],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts"]}],"total_commits":0,"head_commit":{"id":"5610cb3abf777eabb83c8c6353f13a6f1af10c5d","message":"test(fact): verify dev retry after outage and lost acknowledgement\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/5610cb3abf777eabb83c8c6353f13a6f1af10c5d","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-10T02:41:54-07:00","added":["docs/domain/fact-dev-recovery-acceptance-2026-10-10.md"],"removed":[],"modified":["CLAUDE.md","apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts"]},"repository":{"id":83,"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-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":9207,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-09-27T10:58:03+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
|
3
|
4
|
0
|
1791627592
|
0
|
1791626456
|
1791627592
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25371
|
merge: preserve OS identity gates with current mai merge: preserve OS identity gates with current main and registry admission...
|
76
|
5
|
governance.yml
|
162
|
5
|
0
|
refs/heads/main
|
9b4210346a7997f20f92d0326848d172f9acc17f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b5b504aec5ab1199aecd415d36c439b993d134e7","after":"9b4210346a7997f20f92d0326848d172f9acc17f","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/b5b504aec5ab1199aecd415d36c439b993d134e7...9b4210346a7997f20f92d0326848d172f9acc17f","commits":[{"id":"9b4210346a7997f20f92d0326848d172f9acc17f","message":"merge: preserve OS identity gates with current main and registry admission\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9b4210346a7997f20f92d0326848d172f9acc17f","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-10T02:54:00-07:00","added":["app-manifest.json","docs/operations/local-restart-2026-10-08.md","docs/operations/local-web-proxy-repair-2026-09-26.md","docs/operations/platform-dev-e1-usage-export-2026-09-26.md","governance/platform-integration.json","reports/app-manifest.latest.json","scripts/check-app-manifest.mjs"],"removed":["apps/api-fastify/src/plugins/trigger-engine.ts"],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.usage-export.platform-e2e.test.ts","apps/api-fastify/test/product-extension.acceptance.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/triggers/triggers.module.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.usage-export.platform-e2e.test.ts","apps/api-nestjs/test/product-extension.acceptance.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/web/e2e/acceptance.spec.ts","docs/domain/enterprise-control-plane-integration-governance.md","docs/operations/registry-admission-2026-10-10.md","docs/planning/development-blueprint-2026-09-04.md","docs/product-extension-guide.md","governance.registry.json","governance/app-manifest.candidate.json","governance/registry-source-artifact.json","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","kernel.products.json","kernel.products.lock.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/trigger.ts","packages/tool-runtime/package.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/host/web/features/hr/api/hr-api.ts","products/juhai.hr/host/web/features/hr/components/HrDeliveryAuditWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrMasterDataWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelChangeWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelGovernanceWorkbench.tsx","products/juhai.hr/manifest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-all.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-rls.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/registry-admission.mjs","scripts/mock-llm-tool-provider.mjs"]},{"id":"0df34078a9387dc2a1aa66be2bc18018a81401d5","message":"feat(registry): add OS service admission with mapped identity and source artifact\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0df34078a9387dc2a1aa66be2bc18018a81401d5","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-10T02:44:18-07:00","added":["docs/operations/registry-admission-2026-10-10.md","governance/registry-identity-mapping.json","governance/registry-source-artifact.json","scripts/lib/registry-admission.mjs","scripts/lib/registry-admission.test.mjs","scripts/registry-admission.mjs"],"removed":[],"modified":["governance/app-manifest.candidate.json","package.json","pnpm-lock.yaml"]},{"id":"0473b44cb88921830f04e73bc3dff8bdab7f5383","message":"test(mcp): use selected query version in Fastify tool registration\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/0473b44cb88921830f04e73bc3dff8bdab7f5383","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-10T01:01:03-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/llm.acceptance.test.ts"]},{"id":"1c7c38bcf1ed75569c3f5bc9e5509d8039cb4c2b","message":"test(mcp): bind worker acceptance to the installed query v2 contract\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/1c7c38bcf1ed75569c3f5bc9e5509d8039cb4c2b","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-10T00:02:22-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.acceptance.test.ts"]},{"id":"6bc8b2021b0b79f9d6afb7edf86e44660c6242df","message":"feat(identity): consume control-plane lifecycle and canonical erasure checkpoints\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/6bc8b2021b0b79f9d6afb7edf86e44660c6242df","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-09T23:47:38-07:00","added":["apps/api-fastify/prisma/migrations/20261010000000_control_plane_identity/migration.sql","apps/api-nestjs/prisma/migrations/20261010000000_control_plane_identity/migration.sql","docs/domain/control-plane-identity-blueprint.md","products/juhai.hr/migrations/juhai.hr.personnel-core/20261010000000_enterprise_fact_export_grants.sql","scripts/check-identity-protocol-runtime.mjs","scripts/identity-protocol-agent.mjs","scripts/lib/identity-protocol.mjs"],"removed":[],"modified":["apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/src/plugins/rls-prisma.ts","apps/api-fastify/src/plugins/tool-intent-dispatcher.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/events/fanout.service.ts","apps/api-nestjs/src/prisma/rls-prisma.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/tools/tool-intent-dispatcher.service.ts","docs/domain/enterprise-control-plane-integration-governance.md","docs/domain/owner-matrix.md","kernel.downstream.lock.json","kernel.packages.json","kernel.packages.lock.json","packages/contracts/package.json","packages/contracts/src/rls.test.ts","packages/contracts/src/rls.ts","packages/product-runtime/src/product-sql.ts","packages/tool-runtime/package.json"]}],"total_commits":0,"head_commit":{"id":"9b4210346a7997f20f92d0326848d172f9acc17f","message":"merge: preserve OS identity gates with current main and registry admission\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9b4210346a7997f20f92d0326848d172f9acc17f","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-10T02:54:00-07:00","added":["app-manifest.json","docs/operations/local-restart-2026-10-08.md","docs/operations/local-web-proxy-repair-2026-09-26.md","docs/operations/platform-dev-e1-usage-export-2026-09-26.md","governance/platform-integration.json","reports/app-manifest.latest.json","scripts/check-app-manifest.mjs"],"removed":["apps/api-fastify/src/plugins/trigger-engine.ts"],"modified":["CLAUDE.md","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/triggers.service.ts","apps/api-fastify/src/plugins/outbox.ts","apps/api-fastify/src/plugins/queue.ts","apps/api-fastify/test/llm.acceptance.test.ts","apps/api-fastify/test/llm.usage-export.platform-e2e.test.ts","apps/api-fastify/test/product-extension.acceptance.test.ts","apps/api-fastify/test/triggers.integration.test.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","apps/api-nestjs/src/queue/jobs.processor.ts","apps/api-nestjs/src/queue/queue.module.ts","apps/api-nestjs/src/queue/queue.types.ts","apps/api-nestjs/src/triggers/trigger-engine.service.ts","apps/api-nestjs/src/triggers/triggers.module.ts","apps/api-nestjs/test/llm.acceptance.test.ts","apps/api-nestjs/test/llm.usage-export.platform-e2e.test.ts","apps/api-nestjs/test/product-extension.acceptance.test.ts","apps/api-nestjs/test/triggers.integration.test.ts","apps/web/e2e/acceptance.spec.ts","docs/domain/enterprise-control-plane-integration-governance.md","docs/operations/registry-admission-2026-10-10.md","docs/planning/development-blueprint-2026-09-04.md","docs/product-extension-guide.md","governance.registry.json","governance/app-manifest.candidate.json","governance/registry-source-artifact.json","kernel.boundaries.json","kernel.boundaries.lock.json","kernel.downstream.lock.json","kernel.exports.lock.json","kernel.packages.json","kernel.packages.lock.json","kernel.products.json","kernel.products.lock.json","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/job.ts","packages/contracts/src/trigger.ts","packages/tool-runtime/package.json","products/juhai.hr/acceptance/runtime-suite.mjs","products/juhai.hr/acceptance/web-workspace.acceptance.spec.ts","products/juhai.hr/host/web/features/hr/api/hr-api.ts","products/juhai.hr/host/web/features/hr/components/HrDeliveryAuditWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrMasterDataWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelChangeWorkbench.tsx","products/juhai.hr/host/web/features/hr/components/HrPersonnelGovernanceWorkbench.tsx","products/juhai.hr/manifest.json","reports/agent-adapters.latest.json","reports/auth-startup.latest.json","reports/capacity-envelope.latest.json","reports/contract-consumers.latest.json","reports/db-credential-separation.latest.json","reports/dependency-resilience.latest.json","reports/docs-truth.latest.json","reports/dual-backend-behavior.latest.json","reports/dual-backend-parity.latest.json","reports/fixtures.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/kernel-admission.latest.json","reports/kernel-boundaries.latest.json","reports/kernel-downstream.latest.json","reports/kernel-extensions.latest.json","reports/kernel-packages.latest.json","reports/list-bounds.latest.json","reports/llm-eval.latest.json","reports/migrations.latest.json","reports/mobile-export.latest.json","reports/multi-instance.latest.json","reports/naming.latest.json","reports/operations.latest.json","reports/platform-dependency-provenance.latest.json","reports/product-acceptance-runtime.latest.json","reports/product-acceptance.latest.json","reports/product-extension-runtime.latest.json","reports/product-migrations-runtime.latest.json","reports/product-migrations.latest.json","reports/product-sql-runtime.latest.json","reports/report-transaction-lock.latest.json","reports/rls.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/tracing.latest.json","reports/ui-acceptance.latest.json","reports/ui-fastify-acceptance.latest.json","reports/ui-nestjs-acceptance.latest.json","reports/validation-source.latest.json","reports/write-capacity.latest.json","scripts/check-all.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-rls.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/registry-admission.mjs","scripts/mock-llm-tool-provider.mjs"]},"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":99388,"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":3,"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-10-09T13:32: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":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
|
3
|
18
|
0
|
1791628183
|
0
|
1791626515
|
1791628183
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25377
|
test(fact): report and assert successful intake be test(fact): report and assert successful intake before lost acknowledgement...
|
83
|
5
|
governance.yml
|
62
|
5
|
0
|
refs/heads/main
|
6110724e8ae308f329024d2cf81cb2887f282092
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"5610cb3abf777eabb83c8c6353f13a6f1af10c5d","after":"6110724e8ae308f329024d2cf81cb2887f282092","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/5610cb3abf777eabb83c8c6353f13a6f1af10c5d...6110724e8ae308f329024d2cf81cb2887f282092","commits":[{"id":"6110724e8ae308f329024d2cf81cb2887f282092","message":"test(fact): report and assert successful intake before lost acknowledgement\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/6110724e8ae308f329024d2cf81cb2887f282092","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-10T03:12:02-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts"]},{"id":"f22498a93a4bee8b45fbbc1f6c4d0ee8aec104c1","message":"test(fact): wait on database retry eligibility in dev recovery\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/f22498a93a4bee8b45fbbc1f6c4d0ee8aec104c1","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-10T03:08:28-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts","docs/domain/fact-dev-recovery-acceptance-2026-10-10.md"]}],"total_commits":0,"head_commit":{"id":"6110724e8ae308f329024d2cf81cb2887f282092","message":"test(fact): report and assert successful intake before lost acknowledgement\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/6110724e8ae308f329024d2cf81cb2887f282092","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-10T03:12:02-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/test/platform-fact-delivery.acceptance.test.ts"]},"repository":{"id":83,"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-hr-system","full_name":"luoanwu/juhai-ai-hr-system","description":"巨嗨 AI 人事系统:受治理全栈基础框架","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":9275,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-ai-hr-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-ai-hr-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":3,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:35:18+08:00","updated_at":"2026-10-10T18:00: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":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
|
1791628315
|
1791628374
|
0
|
1791627592
|
1791628376
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
25382
|
docs(registry): record verified OS admission and c docs(registry): record verified OS admission and central audit...
|
76
|
5
|
governance.yml
|
164
|
5
|
0
|
refs/heads/main
|
9051d59afc16a0451b636e16a8a53feae4e66596
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"9b4210346a7997f20f92d0326848d172f9acc17f","after":"9051d59afc16a0451b636e16a8a53feae4e66596","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/9b4210346a7997f20f92d0326848d172f9acc17f...9051d59afc16a0451b636e16a8a53feae4e66596","commits":[{"id":"9051d59afc16a0451b636e16a8a53feae4e66596","message":"docs(registry): record verified OS admission and central audit\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9051d59afc16a0451b636e16a8a53feae4e66596","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-10T03:29:26-07:00","added":["governance/registry-acceptance-record.json"],"removed":[],"modified":["docs/operations/registry-admission-2026-10-10.md","governance/platform-integration.json","reports/app-manifest.latest.json"]}],"total_commits":0,"head_commit":{"id":"9051d59afc16a0451b636e16a8a53feae4e66596","message":"docs(registry): record verified OS admission and central audit\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/9051d59afc16a0451b636e16a8a53feae4e66596","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-10T03:29:26-07:00","added":["governance/registry-acceptance-record.json"],"removed":[],"modified":["docs/operations/registry-admission-2026-10-10.md","governance/platform-integration.json","reports/app-manifest.latest.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":99737,"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":3,"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-10-10T18:01: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":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
|
18
|
0
|
1791628323
|
0
|
1791628183
|
1791628323
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|