|
26667
|
feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma 6 阻塞...
|
160
|
5
|
ci.yml
|
5
|
5
|
0
|
refs/heads/main
|
b581d18e4449cb04a547e46807641a4c991417e7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a7963ef1fa5c09c7fce284dd8b16c9a452b39949","after":"b581d18e4449cb04a547e46807641a4c991417e7","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/a7963ef1fa5c09c7fce284dd8b16c9a452b39949...b581d18e4449cb04a547e46807641a4c991417e7","commits":[{"id":"b581d18e4449cb04a547e46807641a4c991417e7","message":"feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma 6 阻塞\n\nP1-02 依赖代际探针留下的 5 个 Prisma 6 类型错误(3 处 $use、加密中间件 2 处类型)\n在主线清零:\n\n- config/prisma-middleware-extension.ts 把 (params, next) 中间件原样包成顶层\n $allOperations 查询扩展,慢查询 / 租户隔离 / 加密三个中间件本身不改;\n- config/database.ts 默认仍 $use;EIOS_PRISMA_QUERY_EXTENSIONS=true 或运行时没有\n $use(Prisma 6)时按原注册顺序逐个 $extends;开发态缓存改为基座,避免扩展叠层;\n- encryption.middleware.ts 对同一 args 对象就地写,兼容 Prisma 6 类型,行为不变。\n\nPrisma 5.22 实测:先 $extends 的在外层,与 $use 注册顺序一致;顶层钩子也拦 raw 查询。\n测试 7 项用真实 PrismaClient 指向不可达库,验证嵌套顺序、args 改写传递与租户隔离\n在发往引擎前拒绝。读数:Prisma 5 type-check 0 错误、单测 8968/8984(17 项基线);\n探针 Prisma 6.19.3 type-check 0 错误(原 5),适配与加密单测 46/46。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b581d18e4449cb04a547e46807641a4c991417e7","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-29T23:07:20-07:00","added":["backend/src/config/__tests__/prisma-middleware-extension.test.ts","backend/src/config/prisma-middleware-extension.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/database.ts","backend/src/shared/middleware/encryption.middleware.ts","docs/eios-transformation/README.md","docs/eios-transformation/lanes/p1.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"b581d18e4449cb04a547e46807641a4c991417e7","message":"feat(eios): Prisma 中间件可改走 $extends 查询扩展,清掉 Prisma 6 阻塞\n\nP1-02 依赖代际探针留下的 5 个 Prisma 6 类型错误(3 处 $use、加密中间件 2 处类型)\n在主线清零:\n\n- config/prisma-middleware-extension.ts 把 (params, next) 中间件原样包成顶层\n $allOperations 查询扩展,慢查询 / 租户隔离 / 加密三个中间件本身不改;\n- config/database.ts 默认仍 $use;EIOS_PRISMA_QUERY_EXTENSIONS=true 或运行时没有\n $use(Prisma 6)时按原注册顺序逐个 $extends;开发态缓存改为基座,避免扩展叠层;\n- encryption.middleware.ts 对同一 args 对象就地写,兼容 Prisma 6 类型,行为不变。\n\nPrisma 5.22 实测:先 $extends 的在外层,与 $use 注册顺序一致;顶层钩子也拦 raw 查询。\n测试 7 项用真实 PrismaClient 指向不可达库,验证嵌套顺序、args 改写传递与租户隔离\n在发往引擎前拒绝。读数:Prisma 5 type-check 0 错误、单测 8968/8984(17 项基线);\n探针 Prisma 6.19.3 type-check 0 错误(原 5),适配与加密单测 46/46。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b581d18e4449cb04a547e46807641a4c991417e7","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-29T23:07:20-07:00","added":["backend/src/config/__tests__/prisma-middleware-extension.test.ts","backend/src/config/prisma-middleware-extension.ts"],"removed":[],"modified":[".env.eios.example","backend/src/config/database.ts","backend/src/shared/middleware/encryption.middleware.ts","docs/eios-transformation/README.md","docs/eios-transformation/lanes/p1.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"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":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102237,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.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":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-30T13:10: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
|
3
|
20
|
1793340847
|
1793343457
|
0
|
1793340464
|
1793343457
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23407
|
Add STARS line context planning
|
50
|
5
|
lyra-production-governance.yml
|
6
|
5
|
0
|
refs/pull/1/head
|
c51dc5edc2fdf269634a6cbbc50e18200230e42d
|
0
|
0
|
0
|
pull_request_sync
|
{"action":"synchronized","numb {"action":"synchronized","number":1,"pull_request":{"id":67,"url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","number":1,"user":{"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"},"title":"fix(web): update Lyra product labels","body":"\u003c!--\r\n PR 治理模板。提交前请逐项确认,确保符合 docs/standards 下的工程规范。\r\n CI 会执行:pnpm check(命名 + 单源漂移 + 治理棘轮 + lint + typecheck);\r\n 有测试 DB 的流水线另执行 DATABASE_URL=... pnpm check:runtime。\r\n--\u003e\r\n\r\n## 变更内容\r\n\u003c!-- 简述这次改了什么、为什么改(聚焦 why) --\u003e\r\n-\r\n\r\n## 涉及业务概念\r\n\u003c!-- 列出涉及的业务词典英文名,例如 store / order / verification。参见 docs/domain-glossary.md --\u003e\r\n-\r\n\r\n## 检查清单\r\n\r\n### 命名一致性\r\n- [ ] 业务概念使用了词典中的标准英文名(未出现 shop/branch/seller/voucher/writeOff 等禁用词)\r\n- [ ] 数据库 snake_case + 复数表名;API/JSON 字段 camelCase;类型 PascalCase;常量 SCREAMING_SNAKE_CASE\r\n- [ ] `pnpm check:naming` 通过\r\n- [ ] `pnpm check:schema` 通过,未新增第二份状态/契约真源\r\n\r\n### API / 契约\r\n- [ ] 不涉及 API 变更\r\n- [ ] 新增/修改了 API,路由符合 `/api/v1/{resources}` 规范\r\n- [ ] 已更新 `packages/contracts` 中的 Zod schema / DTO / 类型(前后端共用同一份)\r\n- [ ] 无破坏前端兼容的字段删除/重命名(如有,已在描述中说明迁移方案)\r\n\r\n### 数据库\r\n- [ ] 不涉及数据库变更\r\n- [ ] 新增/修改了表或字段,已通过 migration review(表名复数、字段 snake_case、外键 xxx_id、时间 _at、状态 status)\r\n- [ ] 高增长表已考虑分区;涉及多租户的表带 tenant_id\r\n- [ ] 写链显式带 tenant_id;跨租户读写按 404/隔离口径处理\r\n\r\n### 数据库迁移(迁移即代码:版本/顺序/内容/环境/发布/回滚一致)\r\n- [ ] 改 schema.prisma 的同时**已生成并提交 migration**(`pnpm db:migrate:dev --name \u003cchange\u003e`),未只改 schema 不落迁移\r\n- [ ] **未修改已发布过的历史 migration 文件**(内容一致:历史不可变,新变更走新迁移)\r\n- [ ] `pnpm check:migrations` 通过(迁移历史在位 / 无未豁免高危 DDL / schema 表、enum、`@map` 列均已落迁移)\r\n- [ ] 破坏性变更(删表/删列/改名/改类型/加 NOT NULL/加唯一约束)走 **expand→migrate→contract** 三阶段,不一次切\r\n- [ ] 大表加索引用 `CREATE INDEX CONCURRENTLY`;大批量回填走 BullMQ 分批任务,不塞进 migration\r\n- [ ] 高危但确需的 DDL 已加 `-- migration-allow:\u003c原因\u003e` 留痕,并在下方回滚方案说明\r\n- [ ] 非开发环境只用 `migrate deploy`(禁止 `db push` / 线上手动 ALTER);发布前 `pnpm db:migrate:status` 无 drift\r\n\r\n### 实时 / 队列\r\n- [ ] 不涉及\r\n- [ ] 关键业务事件进入 BullMQ 或持久化事件表(未仅依赖 Redis Pub/Sub)\r\n- [ ] 写库事件与真实写操作在同一 tx 写入 outbox,未在 commit 后旁路 publish\r\n- [ ] 实时通道选型符合规范(订单/看板/通知用 SSE;设备在线/包间控制/IM 用 WebSocket)\r\n\r\n### 质量与发布\r\n- [ ] 通过 `pnpm lint` 与 `pnpm typecheck`\r\n- [ ] 通过 `pnpm check:governance`,`reports/*.latest.json` 已刷新且无棘轮回退\r\n- [ ] 涉及写链 / DB / 租户 / 状态机时,通过 `DATABASE_URL=... pnpm check:runtime`,`reports/runtime-acceptance.latest.json` 已刷新\r\n- [ ] 已补充/更新必要的测试\r\n- [ ] 不需要回滚方案\r\n- [ ] 需要回滚方案,已在下方说明\r\n\r\n## 回滚方案 / 其他说明\r\n-\r\n","labels":[],"milestone":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_reviewers_teams":[],"state":"open","draft":false,"is_locked":false,"comments":0,"additions":5930,"deletions":464,"changed_files":101,"html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1","diff_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.diff","patch_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment/pulls/1.patch","mergeable":false,"merged":false,"merged_at":null,"merge_commit_sha":null,"merged_by":null,"allow_maintainer_edit":false,"base":{"label":"main","ref":"main","sha":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","repo_id":50,"repo":{"id":50,"owner":{"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"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-06T15:41:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"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":[]}},"head":{"label":"codex/p0-edge-governance","ref":"codex/p0-edge-governance","sha":"c51dc5edc2fdf269634a6cbbc50e18200230e42d","repo_id":50,"repo":{"id":50,"owner":{"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"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-06T15:41:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"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":[]}},"merge_base":"87bcbf6ebbf43784219f8e6a5a40d6cd8fc3041c","due_date":null,"created_at":"2026-07-06T16:41:19+08:00","updated_at":"2026-07-07T21:38:21+08:00","closed_at":null,"pin_order":0},"requested_reviewer":null,"repository":{"id":50,"owner":{"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"},"name":"juhi-song-library-alignment","full_name":"luoanwu/juhi-song-library-alignment","description":"巨嗨曲库分析对齐独立项目","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":8257534,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-song-library-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-song-library-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-song-library-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":1,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-02T15:51:41+08:00","updated_at":"2026-07-06T15:41:42+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":false,"push":false,"pull":false},"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":[]},"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"},"commit_id":"","review":null}...
|
pull_request
|
2
|
4
|
1783431544
|
1783431580
|
0
|
1783431501
|
1783431580
|
|
|
0
|
Edit
Delete
|
|
23416
|
C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)
|
60
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
262802ed1be2f708784260d2fd49e110a9c365f9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2358c119b985d2797496bd76d8683556005f5998","after":"262802ed1be2f708784260d2fd49e110a9c365f9","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/2358c119b985d2797496bd76d8683556005f5998...262802ed1be2f708784260d2fd49e110a9c365f9","commits":[{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"262802ed1be2f708784260d2fd49e110a9c365f9","message":"C64d:测试数解析先剥 ANSI 色码(CI 强制彩色输出致正则失配)\n\nCI 判责输出(C64c 新增)直接暴露根因:turbo/vitest 在 CI 上强制彩色,\n「Tests ⎋[1m⎋[32m95 passed」的转义序列夹在关键词与数字之间使\n/Tests\\s+(\\d+)\\s+passed/ 失配、汇总恒 0;本机非 TTY 无色码故从未复现。\n解析前剥 \\x1b[..m 序列,彩色/无色输入均验证正确;本机 316/316 回归通过。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/262802ed1be2f708784260d2fd49e110a9c365f9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:39:54-07:00","added":[],"removed":[],"modified":["reports/runtime-acceptance.latest.json","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3851,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:32: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
|
2
|
6
|
1784011490
|
1784011581
|
0
|
1784011200
|
1784011582
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23430
|
Strengthen voiceprint governance and runtime accep Strengthen voiceprint governance and runtime acceptance...
|
62
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
73bd623dfedff79a02fac961d1c16f106137e2df
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"99c0c69becb251d64b434b6ab315d0562888ad8d","after":"73bd623dfedff79a02fac961d1c16f106137e2df","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/99c0c69becb251d64b434b6ab315d0562888ad8d...73bd623dfedff79a02fac961d1c16f106137e2df","commits":[{"id":"73bd623dfedff79a02fac961d1c16f106137e2df","message":"Strengthen voiceprint governance and runtime acceptance\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/73bd623dfedff79a02fac961d1c16f106137e2df","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T10:13:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_age_gender_sidecar.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},{"id":"40a5c4ef3404ccd2f51b8244626d95d1b5939512","message":"fix: stabilize UI acceptance runner\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/40a5c4ef3404ccd2f51b8244626d95d1b5939512","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-18T23:52:59-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"73bd623dfedff79a02fac961d1c16f106137e2df","message":"Strengthen voiceprint governance and runtime acceptance\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/73bd623dfedff79a02fac961d1c16f106137e2df","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T10:13:40-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/modules/voiceprint/sidecar-client.ts","apps/api-fastify/test/voiceprint.acceptance.test.ts","apps/api-nestjs/src/voiceprint/sidecar.client.ts","apps/api-nestjs/test/voiceprint.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/components/voiceprint/IdentifyPanel.tsx","docs/domain/voiceprint-blueprint.md","docs/product-prd.md","packages/contracts/src/voiceprint.test.ts","packages/contracts/src/voiceprint.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/voiceprint-sidecar-ui-stub.mjs","src/speaker_embedding/age_gender_research.py","src/speaker_embedding/age_gender_sidecar.py","src/speaker_embedding/extractor.py","src/speaker_embedding/sidecar.py","src/speaker_embedding/speaker_db.py","src/speaker_embedding/timbre.py","tests/test_age_gender_research.py","tests/test_age_gender_sidecar.py","tests/test_sidecar.py","tests/test_speaker_db.py"]},"repository":{"id":62,"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":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1293,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-07-16T12:03: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
|
2
|
6
|
1784654024
|
1784655050
|
0
|
1784654024
|
1784655050
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23441
|
fix(governance): normalize colored test summaries
|
64
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
91550451861f997024b06c845897ea59af85e238
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"49daee39ae62e162a700622733a58a3b0d5fb27c","after":"91550451861f997024b06c845897ea59af85e238","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/49daee39ae62e162a700622733a58a3b0d5fb27c...91550451861f997024b06c845897ea59af85e238","commits":[{"id":"91550451861f997024b06c845897ea59af85e238","message":"fix(governance): normalize colored test summaries\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/91550451861f997024b06c845897ea59af85e238","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:25:23-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"91550451861f997024b06c845897ea59af85e238","message":"fix(governance): normalize colored test summaries\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/91550451861f997024b06c845897ea59af85e238","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:25:23-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":64,"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":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":863,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-22T14:37:12+08:00","updated_at":"2026-07-22T15:20: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
|
2
|
8
|
1784705138
|
1784705194
|
0
|
1784705137
|
1784705194
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23445
|
fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉( fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)...
|
63
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
dbb8444dc97bba3e8ebc715efb82d803001981cd
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf","after":"dbb8444dc97bba3e8ebc715efb82d803001981cd","compare_url":"https://gitea.g-hi.com/luoanwu/forced-alignment/compare/7c3af0f0e3e5d33e89cc59a0e2d727e1641b6cdf...dbb8444dc97bba3e8ebc715efb82d803001981cd","commits":[{"id":"dbb8444dc97bba3e8ebc715efb82d803001981cd","message":"fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)\n\n- 根因:Node 内置 fetch()(undici)自带 headersTimeout/bodyTimeout 默认\n 300000ms(5 分钟),优先级高于应用层 AbortController——route.ts 精心\n 设计的按音频时长预算(最长 55 分钟)从未真正掌管过请求,sidecar 真实\n 计算超 5 分钟即被静默掐断为 fetch failed,sidecar 进程本身无异常\n- 生产实测复现:用户单句重跑报错 fetch failed;日志显示\n POST /api/alignment/align 502 in 303388ms(卡在整 5 分钟),同一时间\n sidecar 侧无任何异常/Traceback\n- 修复:显式装 undici 依赖,建 Agent({ headersTimeout: 0, bodyTimeout: 0 })\n 作为 dispatcher 传入 fetch,超时决定权完全收回给自建 AbortController\n- 验证:本地短耗时对照实验复现同一故障(headersTimeout 2s 下 2.5s 抛出\n 一致的 fetch failed)并验证修复(headersTimeout:0 下等过 5s 拿到真实\n 响应)——非模拟,真实 HTTP 服务器 + 真实 undici Agent\n- 无自动化回归(apps/web 无 vitest 基座);已回灌 CLAUDE.md 缺口索引与\n 治理经验库,登记「未来任何长耗时出站 fetch 须显式归零 undici 超时」\n 的通用教训\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/dbb8444dc97bba3e8ebc715efb82d803001981cd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:53:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/package.json","apps/web/src/app/api/alignment/align/route.ts","docs/governance-experience.md","pnpm-lock.yaml","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"dbb8444dc97bba3e8ebc715efb82d803001981cd","message":"fix: align 代理层超时预算被 undici 默认 headersTimeout 静默吞掉(C18)\n\n- 根因:Node 内置 fetch()(undici)自带 headersTimeout/bodyTimeout 默认\n 300000ms(5 分钟),优先级高于应用层 AbortController——route.ts 精心\n 设计的按音频时长预算(最长 55 分钟)从未真正掌管过请求,sidecar 真实\n 计算超 5 分钟即被静默掐断为 fetch failed,sidecar 进程本身无异常\n- 生产实测复现:用户单句重跑报错 fetch failed;日志显示\n POST /api/alignment/align 502 in 303388ms(卡在整 5 分钟),同一时间\n sidecar 侧无任何异常/Traceback\n- 修复:显式装 undici 依赖,建 Agent({ headersTimeout: 0, bodyTimeout: 0 })\n 作为 dispatcher 传入 fetch,超时决定权完全收回给自建 AbortController\n- 验证:本地短耗时对照实验复现同一故障(headersTimeout 2s 下 2.5s 抛出\n 一致的 fetch failed)并验证修复(headersTimeout:0 下等过 5s 拿到真实\n 响应)——非模拟,真实 HTTP 服务器 + 真实 undici Agent\n- 无自动化回归(apps/web 无 vitest 基座);已回灌 CLAUDE.md 缺口索引与\n 治理经验库,登记「未来任何长耗时出站 fetch 须显式归零 undici 超时」\n 的通用教训\n\nCo-Authored-By: Claude Sonnet 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/forced-alignment/commit/dbb8444dc97bba3e8ebc715efb82d803001981cd","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:53:29-07:00","added":[],"removed":[],"modified":["CLAUDE.md","apps/web/package.json","apps/web/src/app/api/alignment/align/route.ts","docs/governance-experience.md","pnpm-lock.yaml","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},"repository":{"id":63,"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":"forced-alignment","full_name":"luoanwu/forced-alignment","description":"纯人声与歌词精准强制对齐工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":29769,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment/languages","html_url":"https://gitea.g-hi.com/luoanwu/forced-alignment","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/forced-alignment","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/forced-alignment.git","clone_url":"https://gitea.g-hi.com/luoanwu/forced-alignment.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-22T08:56:49+08:00","updated_at":"2026-07-22T15:40: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
|
6
|
1784706813
|
1784706904
|
0
|
1784706813
|
1784706905
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23459
|
feat(governance): harden report provenance and UI feat(governance): harden report provenance and UI acceptance...
|
54
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
da8f52db37f5b42d035f92ad27a45067bc57dfa9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"02a656716b10d2a5a4937ba01086cbd0a9ff4b85","after":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/02a656716b10d2a5a4937ba01086cbd0a9ff4b85...da8f52db37f5b42d035f92ad27a45067bc57dfa9","commits":[{"id":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","message":"feat(governance): harden report provenance and UI acceptance\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/da8f52db37f5b42d035f92ad27a45067bc57dfa9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:40:06-07:00","added":["scripts/lib/report-provenance.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/governance-experience.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs"]},{"id":"4940be24ba6bfff2eefb2284f8ce66c9cbd1f326","message":"docs(governance): record remote branch consolidation\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/4940be24ba6bfff2eefb2284f8ce66c9cbd1f326","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T01:35:33-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","message":"feat(governance): harden report provenance and UI acceptance\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/da8f52db37f5b42d035f92ad27a45067bc57dfa9","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:40:06-07:00","added":["scripts/lib/report-provenance.mjs"],"removed":[],"modified":["CLAUDE.md","README.md","docs/governance-experience.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-contract-consumers.mjs","scripts/check-docs-truth.mjs","scripts/check-dual-backend-parity.mjs","scripts/check-governance-docs.mjs","scripts/check-migrations.mjs","scripts/check-naming.mjs","scripts/check-order-concurrency-guard.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-schema-sync.mjs","scripts/check-ui-acceptance.mjs","scripts/check-validation-source.mjs","scripts/governance-report.mjs"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":890,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-07-22T16:35: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
|
2
|
8
|
1785422435
|
1785422492
|
0
|
1785422433
|
1785422492
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23467
|
chore: refresh verified acceptance evidence
|
72
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
7638e946e8817308b94a23c028a18ac465c342c6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"283f1bfb6b2f049b0476abb92698db0539bc832f","after":"7638e946e8817308b94a23c028a18ac465c342c6","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/283f1bfb6b2f049b0476abb92698db0539bc832f...7638e946e8817308b94a23c028a18ac465c342c6","commits":[{"id":"7638e946e8817308b94a23c028a18ac465c342c6","message":"chore: refresh verified acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/7638e946e8817308b94a23c028a18ac465c342c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:30:59-07:00","added":["reports/gate-selftest.latest.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"4d854d156ce4b4fb7791f427ced17f6fda6e4814","message":"fix: keep UI acceptance workspace clean\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/4d854d156ce4b4fb7791f427ced17f6fda6e4814","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:29:46-07:00","added":[],"removed":[],"modified":["apps/web/tsconfig.json","scripts/check-ui-acceptance.mjs"]},{"id":"2cbed6d88071e721e4c854e79485efe61b780aa1","message":"feat: ship customer solution design workflow\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/2cbed6d88071e721e4c854e79485efe61b780aa1","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:27:22-07:00","added":["apps/api-fastify/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/src/routes/customer-solutions.ts","apps/api-nestjs/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-nestjs/src/customer-solutions/customer-solutions.controller.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.module.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/web/src/app/solution/[accessToken]/page.tsx","apps/web/src/features/customer-solutions/api/customer-solutions-api.ts","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","apps/web/src/features/customer-solutions/components/PublicCustomerSolutionView.tsx","apps/web/src/features/customer-solutions/hooks/use-customer-solutions.ts","apps/web/src/features/customer-solutions/lib/floor-plan-analysis.ts","apps/web/src/store/solution-ui.ts","docs/domain/customer-solution-design-blueprint.md","packages/contracts/src/solution.ts","scripts/check-gate-selftest.mjs","scripts/lib/report-provenance.test.mjs","scripts/lib/vitest-report.mjs","scripts/lib/vitest-report.test.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","docs/audit/2026-07-30-deep-audit.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"7638e946e8817308b94a23c028a18ac465c342c6","message":"chore: refresh verified acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/7638e946e8817308b94a23c028a18ac465c342c6","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T22:30:59-07:00","added":["reports/gate-selftest.latest.json"],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":72,"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-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":3689,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-31T03:51:09+08:00","updated_at":"2026-07-31T12:56: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
|
8
|
1785475888
|
1785475962
|
0
|
1785475887
|
1785475962
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23468
|
接入阿里模型
|
51
|
5
|
ci.yml
|
6
|
8
|
0
|
refs/heads/main
|
ea5ea97b4d7487a0cd01201fcf404ec4b1913321
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8be066d1f0c5db776932ea77d5e0ee292bb367dd","after":"ea5ea97b4d7487a0cd01201fcf404ec4b1913321","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/8be066d1f0c5db776932ea77d5e0ee292bb367dd...ea5ea97b4d7487a0cd01201fcf404ec4b1913321","commits":[{"id":"ea5ea97b4d7487a0cd01201fcf404ec4b1913321","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ea5ea97b4d7487a0cd01201fcf404ec4b1913321","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T14:10:06+08:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docker-compose.colima.yml","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/playwright.config.ts","server/.env.example","server/README.md","server/docker-compose.yml","server/src/adapters/ai/index.ts","server/src/adapters/ai/mock.ts","server/src/adapters/ai/provider.ts","server/src/adapters/ai/real.ts","server/src/adapters/ocr/index.ts","server/src/adapters/ocr/mock.ts","server/src/adapters/ocr/parse.ts","server/src/adapters/ocr/provider.ts","server/src/adapters/ocr/vision.ts","server/src/config/env.ts","server/src/lib/errors.ts","server/src/middleware/error.ts","server/src/modules/metrics/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/metrics/service.ts","server/src/modules/periphery/routes.ts","server/src/modules/reviews/routes.ts","server/src/modules/reviews/service.ts","server/src/openapi.ts","server/test/ai-provider.unit.test.ts","server/test/ocr-parse.test.ts","server/test/r11-review-care.test.ts","server/vitest.config.ts","server/vitest.unit.config.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/ios-frame.jsx","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.md","真实链路与状态机审计矩阵.md","项目模块关系图谱.md"]}],"total_commits":0,"head_commit":{"id":"ea5ea97b4d7487a0cd01201fcf404ec4b1913321","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/ea5ea97b4d7487a0cd01201fcf404ec4b1913321","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T14:10:06+08:00","added":[],"removed":[],"modified":["CLAUDE.md","README.md","docker-compose.colima.yml","docs/reports/production-capability-truth-matrix-2026-06-12.md","e2e/playwright.config.ts","server/.env.example","server/README.md","server/docker-compose.yml","server/src/adapters/ai/index.ts","server/src/adapters/ai/mock.ts","server/src/adapters/ai/provider.ts","server/src/adapters/ai/real.ts","server/src/adapters/ocr/index.ts","server/src/adapters/ocr/mock.ts","server/src/adapters/ocr/parse.ts","server/src/adapters/ocr/provider.ts","server/src/adapters/ocr/vision.ts","server/src/config/env.ts","server/src/lib/errors.ts","server/src/middleware/error.ts","server/src/modules/metrics/routes.ts","server/src/modules/metrics/schema.ts","server/src/modules/metrics/service.ts","server/src/modules/periphery/routes.ts","server/src/modules/reviews/routes.ts","server/src/modules/reviews/service.ts","server/src/openapi.ts","server/test/ai-provider.unit.test.ts","server/test/ocr-parse.test.ts","server/test/r11-review-care.test.ts","server/vitest.config.ts","server/vitest.unit.config.ts","团购本地生活AI运营App/api.js","团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/ios-frame.jsx","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/screens-ops.jsx","团购本地生活AI运营App/screens-p2.jsx","团购本地生活AI运营App/scripts/test-static.mjs","开发计划.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":87011,"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":1,"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-07-22T17:24: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":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"},"sender":{"id":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"}}...
|
push
|
2
|
8
|
1785478212
|
1785478332
|
0
|
1785478211
|
1785478332
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23492
|
docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并 docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并声明...
|
74
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
470495fbe7a9692bbb9ef869546e0050c9c73b7e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a369f4ee008c621f3ef5ada67880cb52a9ad7c9b","after":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/a369f4ee008c621f3ef5ada67880cb52a9ad7c9b...470495fbe7a9692bbb9ef869546e0050c9c73b7e","commits":[{"id":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","message":"docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并声明\n\n上一提交写的免责句「不可外推为远端已发布该提交(fe9a6ae 尚未推送时本段成立)」\n在推送完成后其前提已不成立,留着就是一条自我失效的治理记录。\n\n按发布口径表改为可支撑的合并声明:\n「双远端已发布 fe9a6ae,且该提交在本地 clean 检出点通过三级门禁」。\n\n同时把剩余边界写死:仍不可外推为「远端 CI 已拦截 / 已部署 / 生产可用」——\n远端从未跑出过一次门禁运行,上述声明的证据来源始终是本机,\n与远端只共享同一个 commit SHA(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/470495fbe7a9692bbb9ef869546e0050c9c73b7e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:42:32-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]}],"total_commits":0,"head_commit":{"id":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","message":"docs(governance): 收口发布声明——fe9a6ae 已推送,把免责句换成可支撑的合并声明\n\n上一提交写的免责句「不可外推为远端已发布该提交(fe9a6ae 尚未推送时本段成立)」\n在推送完成后其前提已不成立,留着就是一条自我失效的治理记录。\n\n按发布口径表改为可支撑的合并声明:\n「双远端已发布 fe9a6ae,且该提交在本地 clean 检出点通过三级门禁」。\n\n同时把剩余边界写死:仍不可外推为「远端 CI 已拦截 / 已部署 / 生产可用」——\n远端从未跑出过一次门禁运行,上述声明的证据来源始终是本机,\n与远端只共享同一个 commit SHA(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/470495fbe7a9692bbb9ef869546e0050c9c73b7e","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:42:32-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},"repository":{"id":74,"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":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5634,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T07:41: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
|
2
|
8
|
1787010159
|
1787010237
|
0
|
1787010158
|
1787010237
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23505
|
docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601 docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601896)...
|
76
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
66900427c855e2ce43d634de9c6107dd6e8d1224
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"6a3d263e9c83ec102cd45c7a7303926821bf02cf","after":"66900427c855e2ce43d634de9c6107dd6e8d1224","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/6a3d263e9c83ec102cd45c7a7303926821bf02cf...66900427c855e2ce43d634de9c6107dd6e8d1224","commits":[{"id":"66900427c855e2ce43d634de9c6107dd6e8d1224","message":"docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601896)\n\n两远端 main=6a3d263,GitHub Actions 两 job 全绿;三层 CI 假红判责留档\n(F5 浅克隆 / 干净 checkout 缺 contracts dist / ANSI 彩色数 0)。\nci-gate 保持 OPEN:branch protection + 受控失败 PR 拦截证明未做。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/66900427c855e2ce43d634de9c6107dd6e8d1224","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:45:06-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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/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/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"66900427c855e2ce43d634de9c6107dd6e8d1224","message":"docs(governance): 发布状态快照更新为远端三级门禁首次全绿(run 32344601896)\n\n两远端 main=6a3d263,GitHub Actions 两 job 全绿;三层 CI 假红判责留档\n(F5 浅克隆 / 干净 checkout 缺 contracts dist / ANSI 彩色数 0)。\nci-gate 保持 OPEN:branch protection + 受控失败 PR 拦截证明未做。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/66900427c855e2ce43d634de9c6107dd6e8d1224","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T00:45:06-07:00","added":[],"removed":[],"modified":["CLAUDE.md","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/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/ui-acceptance.latest.json","reports/validation-source.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":1129,"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":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-20T14:46:28+08:00","updated_at":"2026-08-20T15:33: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
|
8
|
1787211910
|
1787211977
|
0
|
1787211909
|
1787211977
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23523
|
feat(governance): harden formal production trust b feat(governance): harden formal production trust boundaries...
|
57
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
8e23fd115535dda184b584cb62396fa8286ef383
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"f094101357dc511e450e0e18fab5c91baaed9865","after":"8e23fd115535dda184b584cb62396fa8286ef383","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/f094101357dc511e450e0e18fab5c91baaed9865...8e23fd115535dda184b584cb62396fa8286ef383","commits":[{"id":"8e23fd115535dda184b584cb62396fa8286ef383","message":"feat(governance): harden formal production trust boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e23fd115535dda184b584cb62396fa8286ef383","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:46:37-07:00","added":["apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","reports/production-security.latest.json","scripts/check-production-security.mjs"],"removed":[],"modified":["CLAUDE.md","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/modules/material-production/object-storage.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.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/test/http.acceptance.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","reports/adversarial-acceptance-audit.latest.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},{"id":"58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","message":"feat: 完善分镜导演终审与对抗治理\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/58ffde2d1e2a662a18b4fadf901b0f6f5233f30a","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T11:55:23-07:00","added":["Codex 图像 2026年8月24日 02_24_17.jpg","apps/api-fastify/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-fastify/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-fastify/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/api-nestjs/prisma/migrations/20260825103000_creative_support_skills/migration.sql","apps/api-nestjs/prisma/migrations/20260825130000_director_spec_qc/migration.sql","apps/api-nestjs/prisma/migrations/20260825134500_storyboard_delivery_variants/migration.sql","apps/web/src/components/material-factory/CreativeSupportSkills.tsx","apps/web/src/components/material-factory/DirectorReviewWorkbench.tsx","packages/contracts/src/creative-support.test.ts","packages/contracts/src/creative-support.ts","packages/contracts/src/director-spec.test.ts","packages/contracts/src/director-spec.ts","reports/adversarial-acceptance-audit.latest.md","reports/storyboard-director-guard.latest.json","scripts/check-storyboard-director-guard.mjs"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/modules/material-factory/material-factory.service.ts","apps/api-fastify/src/modules/material-factory/material-sidecar.client.ts","apps/api-fastify/src/modules/material-factory/shooting-script.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-inference.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.ts","apps/api-nestjs/src/material-factory/material-sidecar.client.ts","apps/api-nestjs/src/material-factory/shooting-script.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/api-nestjs/test/material-inference.acceptance.test.ts","apps/web/package.json","apps/web/src/components/material-factory/CreateStudio.tsx","apps/web/src/components/material-factory/ScriptStudio.tsx","apps/web/src/components/material-factory/StoryboardStudio.tsx","apps/web/src/components/material-factory/VideoStudio.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","package.json","packages/contracts/src/index.ts","packages/contracts/src/material.ts","packages/contracts/src/script-to-storyboard.test.ts","packages/contracts/src/script-to-storyboard.ts","packages/contracts/src/script.ts","packages/contracts/src/storyboard.ts","pnpm-lock.yaml","reports/baseline.json","reports/contract-consumers.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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"8e23fd115535dda184b584cb62396fa8286ef383","message":"feat(governance): harden formal production trust boundaries\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/8e23fd115535dda184b584cb62396fa8286ef383","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:46:37-07:00","added":["apps/api-fastify/src/modules/material-production/runtime-trust.ts","apps/api-fastify/test/material-runtime-trust.test.ts","apps/api-nestjs/src/common/material-runtime.guard.ts","apps/api-nestjs/test/material-runtime-guard.test.ts","reports/production-security.latest.json","scripts/check-production-security.mjs"],"removed":[],"modified":["CLAUDE.md","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/modules/material-production/object-storage.service.ts","apps/api-fastify/src/routes/material-factory.ts","apps/api-fastify/src/routes/material-production.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/material-production.integration.test.ts","apps/api-fastify/test/model-connector.client.test.ts","apps/api-nestjs/src/create-app.ts","apps/api-nestjs/src/material-factory/material-factory.controller.ts","apps/api-nestjs/src/material-factory/material-factory.service.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/test/http.acceptance.test.ts","apps/api-nestjs/test/material-production.integration.test.ts","apps/api-nestjs/test/model-connector.client.test.ts","apps/web/src/components/material-factory/ProductionDetail.tsx","apps/web/src/lib/api.ts","apps/web/src/lib/types.ts","deploy/vm/.env.example","deploy/vm/docker-compose.yml","docs/deploy-vm.md","docs/domain/material-production-blueprint.md","package.json","packages/contracts/src/material-brand.test.ts","packages/contracts/src/material.ts","packages/contracts/src/production.ts","reports/adversarial-acceptance-audit.latest.md","reports/baseline.json","reports/contract-consumers.latest.json","reports/full-transformation-completion-audit.latest.md","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/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/storyboard-director-guard.latest.json","reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png","reports/validation-source.latest.json","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs"]},"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":44687,"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":5,"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-08-26T00:40: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
|
1
|
4
|
1787705227
|
1787705287
|
0
|
1787705225
|
1787705287
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23535
|
test(governance): close dual-backend runtime blind test(governance): close dual-backend runtime blind spots...
|
81
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fbedaf6d0398693dc8466b4b72b6265d2397d93c","after":"3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/fbedaf6d0398693dc8466b4b72b6265d2397d93c...3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","commits":[{"id":"3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","message":"test(governance): close dual-backend runtime blind spots\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T20:18:54-07:00","added":["apps/api-nestjs/test/backend-parity.acceptance.test.ts","apps/api-nestjs/test/health-degraded.acceptance.test.ts","apps/api-nestjs/test/job-failure.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/page.tsx","apps/web/src/hooks/useRealtime.ts","docs/domain/business-logic-map.md","docs/governance-experience.md","packages/contracts/src/user.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-ui-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","message":"test(governance): close dual-backend runtime blind spots\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T20:18:54-07:00","added":["apps/api-nestjs/test/backend-parity.acceptance.test.ts","apps/api-nestjs/test/health-degraded.acceptance.test.ts","apps/api-nestjs/test/job-failure.acceptance.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/routes/sse.ts","apps/api-fastify/src/routes/users.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-fastify/test/realtime.tenant.test.ts","apps/api-nestjs/src/users/users.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/page.tsx","apps/web/src/hooks/useRealtime.ts","docs/domain/business-logic-map.md","docs/governance-experience.md","packages/contracts/src/user.ts","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-dual-backend-parity.mjs","scripts/check-ui-acceptance.mjs"]},"repository":{"id":81,"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-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2395,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-08-26T10:30:31+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
|
1787714350
|
1787714358
|
0
|
1787714348
|
1787714358
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23548
|
fix(ci): self-provision isolated PG/Redis for host fix(ci): self-provision isolated PG/Redis for host-mode runner...
|
91
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
625450881bfb787bfa4ac092e11bfe534c340163
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0","after":"625450881bfb787bfa4ac092e11bfe534c340163","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/fed53f136145fe82cb7dc0a4ee7b8b5453bfddd0...625450881bfb787bfa4ac092e11bfe534c340163","commits":[{"id":"625450881bfb787bfa4ac092e11bfe534c340163","message":"fix(ci): self-provision isolated PG/Redis for host-mode runner\n\nCI run #5 实锤:act_runner 以 host 模式执行,services 块被静默忽略,\n127.0.0.1:5432 命中 runner 宿主上另一个 postgres(P1000 凭据拒绝)——\n「端口连得上」推不出「基座正确」的远端形态。runtime job 改为步骤内\ndocker 自备基座:随机宿主端口 + run_id 后缀命名 + if:always 清理,\n缺 docker 时显式报错指路。Playwright 下载走 npmmirror(大陆网络直连\nCDN 假死为本机实测教训)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/625450881bfb787bfa4ac092e11bfe534c340163","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:56:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"625450881bfb787bfa4ac092e11bfe534c340163","message":"fix(ci): self-provision isolated PG/Redis for host-mode runner\n\nCI run #5 实锤:act_runner 以 host 模式执行,services 块被静默忽略,\n127.0.0.1:5432 命中 runner 宿主上另一个 postgres(P1000 凭据拒绝)——\n「端口连得上」推不出「基座正确」的远端形态。runtime job 改为步骤内\ndocker 自备基座:随机宿主端口 + run_id 后缀命名 + if:always 清理,\n缺 docker 时显式报错指路。Playwright 下载走 npmmirror(大陆网络直连\nCDN 假死为本机实测教训)。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/625450881bfb787bfa4ac092e11bfe534c340163","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T18:56:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]},"repository":{"id":91,"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":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2989,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-30T09:20:06+08:00","updated_at":"2026-08-30T09:49:53+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
|
1788055008
|
1788055099
|
0
|
1788055006
|
1788055099
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23605
|
docs: 发布状态快照更新为已推送 main(03d95db)并删除两条旧分支
|
67
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
a32c582e58f0b53e409d09cbaa5e31c76ca26ab8
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"03d95db096af66a1e7af7708a99156f194f2c702","after":"a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","compare_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/compare/03d95db096af66a1e7af7708a99156f194f2c702...a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","commits":[{"id":"a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","message":"docs: 发布状态快照更新为已推送 main(03d95db)并删除两条旧分支\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","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-02T16:39:43-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]}],"total_commits":0,"head_commit":{"id":"a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","message":"docs: 发布状态快照更新为已推送 main(03d95db)并删除两条旧分支\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics/commit/a32c582e58f0b53e409d09cbaa5e31c76ca26ab8","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-02T16:39:43-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/docs-truth.latest.json","reports/governance-docs.latest.json"]},"repository":{"id":67,"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":"songformer-structure-lyrics","full_name":"luoanwu/songformer-structure-lyrics","description":"SongFormer 结构时间歌词行:结构→歌词行→字级时间流水线 + 治理底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2584,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics/languages","html_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/songformer-structure-lyrics","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/songformer-structure-lyrics.git","clone_url":"https://gitea.g-hi.com/luoanwu/songformer-structure-lyrics.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-28T14:19:19+08:00","updated_at":"2026-09-03T07:39: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
|
2
|
6
|
1788392434
|
1788392525
|
0
|
1788392386
|
1788392526
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23757
|
Implement H3 storyboard generation workflow
|
90
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
05bdd61017321f0434f28c8f0cf83946523d3cd1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8d38d4378b829970bdaf5ccb811e872883fb9d66","after":"05bdd61017321f0434f28c8f0cf83946523d3cd1","compare_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/compare/8d38d4378b829970bdaf5ccb811e872883fb9d66...05bdd61017321f0434f28c8f0cf83946523d3cd1","commits":[{"id":"05bdd61017321f0434f28c8f0cf83946523d3cd1","message":"Implement H3 storyboard generation workflow\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/05bdd61017321f0434f28c8f0cf83946523d3cd1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-08T21:56:45-07:00","added":["apps/web/src/features/h3/components/InferenceProfileSelector.tsx","apps/web/src/features/h3/lib/display.test.ts","apps/web/src/lib/atomic-file.ts","apps/web/src/lib/h3-model-manifest.ts","docs/workstation-deployment.md","packages/config/h3-model-manifest.json","packages/contracts/src/h3-storyboard-import.test.ts","packages/contracts/src/h3-storyboard-import.ts","scripts/check-workstation-deployment.mjs","scripts/manage-launchd.sh","scripts/prepare-production.sh","scripts/render-launchd-plist.mjs","scripts/runtime_backup.py","scripts/start-production.sh","scripts/verify-production-build.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/src/features/h3/api/h3-api.ts","apps/web/src/features/h3/components/H3Workspace.tsx","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","apps/web/src/features/h3/lib/display.ts","apps/web/src/lib/h3-jobs.ts","apps/web/src/lib/h3-model-manager.ts","apps/web/src/lib/h3-storyboards.ts","apps/web/tsconfig.json","docs/domain-glossary.md","docs/domain/h3-studio-blueprint.md","docs/domain/owner-matrix.md","docs/domain/storyboard-blueprint.md","docs/governance-experience.md","generate.py","package.json","packages/contracts/src/h3-storyboard.test.ts","packages/contracts/src/h3-storyboard.ts","packages/contracts/src/h3.test.ts","packages/contracts/src/h3.ts","packages/contracts/src/index.ts","packages/contracts/tsconfig.tsbuildinfo","requirements.txt","scripts/bootstrap.sh","scripts/check-ui-acceptance.mjs","scripts/prepare_model.py"]}],"total_commits":0,"head_commit":{"id":"05bdd61017321f0434f28c8f0cf83946523d3cd1","message":"Implement H3 storyboard generation workflow\n","url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio/commit/05bdd61017321f0434f28c8f0cf83946523d3cd1","author":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"hillao","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-09-08T21:56:45-07:00","added":["apps/web/src/features/h3/components/InferenceProfileSelector.tsx","apps/web/src/features/h3/lib/display.test.ts","apps/web/src/lib/atomic-file.ts","apps/web/src/lib/h3-model-manifest.ts","docs/workstation-deployment.md","packages/config/h3-model-manifest.json","packages/contracts/src/h3-storyboard-import.test.ts","packages/contracts/src/h3-storyboard-import.ts","scripts/check-workstation-deployment.mjs","scripts/manage-launchd.sh","scripts/prepare-production.sh","scripts/render-launchd-plist.mjs","scripts/runtime_backup.py","scripts/start-production.sh","scripts/verify-production-build.mjs"],"removed":[],"modified":[".gitignore","CLAUDE.md","README.md","apps/api-fastify/src/plugins/events.ts","apps/api-fastify/test/realtime.command.test.ts","apps/api-fastify/test/realtime.replay.test.ts","apps/api-fastify/test/realtime.stats.test.ts","apps/api-fastify/test/realtime.subscription.test.ts","apps/api-nestjs/src/events/event-bus.service.ts","apps/api-nestjs/src/redis/redis.module.ts","apps/api-nestjs/test/realtime.command.test.ts","apps/api-nestjs/test/realtime.replay.test.ts","apps/api-nestjs/test/realtime.stats.test.ts","apps/api-nestjs/test/realtime.subscription.test.ts","apps/api-nestjs/test/realtime.tenant.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/package.json","apps/web/src/features/h3/api/h3-api.ts","apps/web/src/features/h3/components/H3Workspace.tsx","apps/web/src/features/h3/components/StoryboardWorkspace.tsx","apps/web/src/features/h3/lib/display.ts","apps/web/src/lib/h3-jobs.ts","apps/web/src/lib/h3-model-manager.ts","apps/web/src/lib/h3-storyboards.ts","apps/web/tsconfig.json","docs/domain-glossary.md","docs/domain/h3-studio-blueprint.md","docs/domain/owner-matrix.md","docs/domain/storyboard-blueprint.md","docs/governance-experience.md","generate.py","package.json","packages/contracts/src/h3-storyboard.test.ts","packages/contracts/src/h3-storyboard.ts","packages/contracts/src/h3.test.ts","packages/contracts/src/h3.ts","packages/contracts/src/index.ts","packages/contracts/tsconfig.tsbuildinfo","requirements.txt","scripts/bootstrap.sh","scripts/check-ui-acceptance.mjs","scripts/prepare_model.py"]},"repository":{"id":90,"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":"minimax-h3-studio","full_name":"luoanwu/minimax-h3-studio","description":"MiniMax H3 本地视频生成 Studio:模型下载、管理、加载、采样与交付工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":996,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio/languages","html_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/minimax-h3-studio","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/minimax-h3-studio.git","clone_url":"https://gitea.g-hi.com/luoanwu/minimax-h3-studio.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-30T09:07:20+08:00","updated_at":"2026-08-30T11:30: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
|
6
|
1788929811
|
1788930852
|
0
|
1788929809
|
1788930853
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23868
|
docs: record remote regression success and existin docs: record remote regression success and existing CI blockers...
|
116
|
5
|
platform.yml
|
6
|
5
|
0
|
refs/heads/main
|
95d9793f80ea584ebb999543fbe94e9597897fe6
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4","after":"95d9793f80ea584ebb999543fbe94e9597897fe6","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/2c26d9d48c606dcae4a86d8c8dcb1921b65f48d4...95d9793f80ea584ebb999543fbe94e9597897fe6","commits":[{"id":"95d9793f80ea584ebb999543fbe94e9597897fe6","message":"docs: record remote regression success and existing CI blockers\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/95d9793f80ea584ebb999543fbe94e9597897fe6","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-12T00:07:52-07:00","added":[],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md"]},{"id":"f7a0cbbdf469957c1bd015df864bcd950e2abb0e","message":"feat(modules): M2 / M3 / M5 / M6 / M7 Planner 纯规则自派生仓迁入 src/domain(开发计划 §3A Mx-3;PF-10 / 15 / 12 / 17 / 21 的 E0 部分)\n\n- credential ← 密钥与服务身份平台 archived-20260910:machine-credential-preflight(3)+ machine-credential-lease-planner(12)\n- permission ← 统一权限平台 fa56752:permission-preflight(4)+ permission-decision-planner(13)+ employment-scope-invalidation(14)\n- fact ← 企业事实干线 b4b17ab:fact-export-planner(14)+ fact-delivery(6)\n- audit ← 企业审计平台 archived-20260910:audit-event-preflight(3)+ audit-append-planner(26)\n- ai-gateway ← AI 治理平台 archived-20260910:ai-action-governance(5)+ ai-governance-router(7)\n每个文件头注明来源仓 / 引用与\"未改语义\";测试同迁(模块 vitest 合计 107 例,加 scope 16 / kit 7);domain/index.ts 保留 *_DOMAIN_STATE=shape 并导出;\n不新增依赖(源文件只互相引用同目录 preflight);模块仍 state=shape,不建表、不接端口(端口形状 Mx-2 另提)。runtime 静态门禁 14 项 + lint + typecheck 通过。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/f7a0cbbdf469957c1bd015df864bcd950e2abb0e","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-12T00:05:49-07:00","added":["runtime/modules/ai-gateway/src/domain/ai-action-governance.test.ts","runtime/modules/ai-gateway/src/domain/ai-action-governance.ts","runtime/modules/ai-gateway/src/domain/ai-governance-router.test.ts","runtime/modules/ai-gateway/src/domain/ai-governance-router.ts","runtime/modules/audit/src/domain/audit-append-planner.test.ts","runtime/modules/audit/src/domain/audit-append-planner.ts","runtime/modules/audit/src/domain/audit-event-preflight.test.ts","runtime/modules/audit/src/domain/audit-event-preflight.ts","runtime/modules/credential/src/domain/machine-credential-lease-planner.test.ts","runtime/modules/credential/src/domain/machine-credential-lease-planner.ts","runtime/modules/credential/src/domain/machine-credential-preflight.test.ts","runtime/modules/credential/src/domain/machine-credential-preflight.ts","runtime/modules/fact/src/domain/fact-delivery.test.ts","runtime/modules/fact/src/domain/fact-delivery.ts","runtime/modules/fact/src/domain/fact-export-planner.test.ts","runtime/modules/fact/src/domain/fact-export-planner.ts","runtime/modules/permission/src/domain/employment-scope-invalidation.test.ts","runtime/modules/permission/src/domain/employment-scope-invalidation.ts","runtime/modules/permission/src/domain/permission-decision-planner.test.ts","runtime/modules/permission/src/domain/permission-decision-planner.ts","runtime/modules/permission/src/domain/permission-preflight.test.ts","runtime/modules/permission/src/domain/permission-preflight.ts"],"removed":[],"modified":["runtime/modules/ai-gateway/src/domain/index.ts","runtime/modules/audit/src/domain/index.ts","runtime/modules/credential/src/domain/index.ts","runtime/modules/fact/src/domain/index.ts","runtime/modules/permission/src/domain/index.ts"]}],"total_commits":0,"head_commit":{"id":"95d9793f80ea584ebb999543fbe94e9597897fe6","message":"docs: record remote regression success and existing CI blockers\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/95d9793f80ea584ebb999543fbe94e9597897fe6","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-12T00:07:52-07:00","added":[],"removed":[],"modified":["docs/候选校验与恢复脚本修复记录-2026-09-12.md"]},"repository":{"id":116,"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":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2028,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T15:05:50+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
22
|
1789196881
|
1789196905
|
0
|
1789196881
|
1789196923
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23913
|
docs(governance): record clean RC1 consumer verifi docs(governance): record clean RC1 consumer verification...
|
83
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
caf551df74c25b3bad8b1a5540f3cc8900649b2d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c934bc46240daae849ad93cfacaa3b25c41b323f","after":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/c934bc46240daae849ad93cfacaa3b25c41b323f...caf551df74c25b3bad8b1a5540f3cc8900649b2d","commits":[{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","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-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},{"id":"c39a56fdb9dbf93e1a4623165569f225775be692","message":"chore(governance): consume platform RC1 and require contract fixtures\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c39a56fdb9dbf93e1a4623165569f225775be692","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-12T06:53:07-07:00","added":["docs/platform-rc1-upgrade-2026-09-12.md"],"removed":[],"modified":[".github/workflows/platform-governance.yml","CLAUDE.md","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","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-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},"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":4056,"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":1,"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-12T17:48:19+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
|
1789221260
|
1789221289
|
0
|
1789221259
|
1789221291
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23995
|
docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 范围改写(待签署后应用)...
|
117
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
101380fb8b7d4c8b1095d7f3a53cb6df5251a58f
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c641151481665a321840ee8081e09101a3b74360","after":"101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/c641151481665a321840ee8081e09101a3b74360...101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","commits":[{"id":"101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","message":"docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 范围改写(待签署后应用)\n\n决策批次 2026-09-16 五处改案带出的两个受控变更:\n- CHG-016:DEC-010 批准记录附条件修订——Required Check 证据来源改 Gitea(B-2)、CODEOWNERS 实名不再作前置(B-1 长期代签,附代签 SOP 原文)、proposed → active 判据改为首次 staging 晋级记录(B-4);decisions.delta.json 只加 note 不改 status。\n- CHG-017:成本与容量治理平台范围并入外部客户订阅计量与出账(C-15),能力表 C19 增 C19.07 / C19.08、C02.01 扩外部客户开户路径、边界表与机器读者处置;不改活跃 Catalog,不建服务。\n批次记录 §3 登记行同步。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","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-16T16:29:59-07:00","added":["平台治理/doc/decisions/CHG-016-材料/README.md","平台治理/doc/decisions/CHG-016-材料/decisions.delta.json","平台治理/doc/decisions/CHG-017-材料/README.md"],"removed":[],"modified":["平台治理/doc/decisions/决策批次-2026-09-16.md"]}],"total_commits":0,"head_commit":{"id":"101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","message":"docs(决策): CHG-016 / CHG-017 材料——DEC-010 附条件修订、C19 范围改写(待签署后应用)\n\n决策批次 2026-09-16 五处改案带出的两个受控变更:\n- CHG-016:DEC-010 批准记录附条件修订——Required Check 证据来源改 Gitea(B-2)、CODEOWNERS 实名不再作前置(B-1 长期代签,附代签 SOP 原文)、proposed → active 判据改为首次 staging 晋级记录(B-4);decisions.delta.json 只加 note 不改 status。\n- CHG-017:成本与容量治理平台范围并入外部客户订阅计量与出账(C-15),能力表 C19 增 C19.07 / C19.08、C02.01 扩外部客户开户路径、边界表与机器读者处置;不改活跃 Catalog,不建服务。\n批次记录 §3 登记行同步。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","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-16T16:29:59-07:00","added":["平台治理/doc/decisions/CHG-016-材料/README.md","平台治理/doc/decisions/CHG-016-材料/decisions.delta.json","平台治理/doc/decisions/CHG-017-材料/README.md"],"removed":[],"modified":["平台治理/doc/decisions/决策批次-2026-09-16.md"]},"repository":{"id":117,"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":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6826,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.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-09-15T11:53:24+08:00","updated_at":"2026-09-17T07:27:04+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
|
1789601404
|
1789601855
|
0
|
1789601402
|
1789601855
|
|
|
0
|
Edit
Delete
|
|
24393
|
feat(notification): route deliveries through platf feat(notification): route deliveries through platform...
|
82
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
7e2036be8923eff41481605454411a2291d5cc7a
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"601955837eb8caa25a91a2c2da96d9a06f8ea455","after":"7e2036be8923eff41481605454411a2291d5cc7a","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/601955837eb8caa25a91a2c2da96d9a06f8ea455...7e2036be8923eff41481605454411a2291d5cc7a","commits":[{"id":"7e2036be8923eff41481605454411a2291d5cc7a","message":"feat(notification): route deliveries through platform\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7e2036be8923eff41481605454411a2291d5cc7a","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-23T05:05:29-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},{"id":"43c911bff4123b2a3d62b2845249caec3b3235db","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:-juhai-ai-work-order-system}`,默认取本仓 package.json 的 name,\n仍可用 COMPOSE_PROJECT_NAME 覆盖。实测 `docker compose config` 解析出的卷已变为\n`juhai-ai-work-order-system_*`。\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/juhai-ai-work-order-system/commit/43c911bff4123b2a3d62b2845249caec3b3235db","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:31-07:00","added":[],"removed":[],"modified":["apps/api-nestjs/docker-compose.yml"]}],"total_commits":0,"head_commit":{"id":"7e2036be8923eff41481605454411a2291d5cc7a","message":"feat(notification): route deliveries through platform\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/7e2036be8923eff41481605454411a2291d5cc7a","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-23T05:05:29-07:00","added":["apps/api-nestjs/test/platform-notification-delivery.acceptance.test.ts","docs/deployment-record-2026-09-23-platform-notification-consumer.md"],"removed":[],"modified":["apps/api-fastify/src/modules/ticket-operations/ticket-operations.service.ts","apps/api-nestjs/src/ticket-operations/ticket-operations.service.ts","docs/domain/owner-matrix.md","docs/domain/ticket-system-blueprint.md","packages/notification-delivery/README.md","packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]},"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":1970,"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":1,"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-19T07:07: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
|
6
|
1790167643
|
1790167734
|
0
|
1790167548
|
1790167736
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24651
|
Use explicit disposable PostgreSQL port for Gitea Use explicit disposable PostgreSQL port for Gitea runner...
|
121
|
5
|
kernel-ci.yml
|
6
|
5
|
0
|
refs/heads/main
|
ed1670dc7e6483bacae603db2f59b4b0ecddd81c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"a36511f3577f8c6e3b0198eed24ed3ebef756a15","after":"ed1670dc7e6483bacae603db2f59b4b0ecddd81c","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/a36511f3577f8c6e3b0198eed24ed3ebef756a15...ed1670dc7e6483bacae603db2f59b4b0ecddd81c","commits":[{"id":"ed1670dc7e6483bacae603db2f59b4b0ecddd81c","message":"Use explicit disposable PostgreSQL port for Gitea runner\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/ed1670dc7e6483bacae603db2f59b4b0ecddd81c","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-29T09:44:04-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]}],"total_commits":0,"head_commit":{"id":"ed1670dc7e6483bacae603db2f59b4b0ecddd81c","message":"Use explicit disposable PostgreSQL port for Gitea runner\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/ed1670dc7e6483bacae603db2f59b4b0ecddd81c","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-29T09:44:04-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]},"repository":{"id":121,"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":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":30644,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T00:42: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
|
2
|
4
|
1790700249
|
1790700263
|
0
|
1790700247
|
1790700263
|
|
|
0
|
Edit
Delete
|
|
25652
|
chore(chg036): merge CHG-034 stack history and ref chore(chg036): merge CHG-034 stack history and refresh declarations...
|
133
|
5
|
infra.yml
|
6
|
5
|
0
|
refs/heads/main
|
fbc127c8341c596329f98fb1f9eb8f17e210a07e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4a41adae67bcf5be2d98b33d6257c0a6de632d69","after":"fbc127c8341c596329f98fb1f9eb8f17e210a07e","compare_url":"https://gitea.g-hi.com/luoanwu/infra/compare/4a41adae67bcf5be2d98b33d6257c0a6de632d69...fbc127c8341c596329f98fb1f9eb8f17e210a07e","commits":[{"id":"fbc127c8341c596329f98fb1f9eb8f17e210a07e","message":"chore(chg036): merge CHG-034 stack history and refresh declarations\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/fbc127c8341c596329f98fb1f9eb8f17e210a07e","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-12T15:12:45-07:00","added":[],"removed":[],"modified":["caddy/Caddyfile","compose.yaml","declarations/SOURCE.json","declarations/caddy-routes.json","declarations/modules.json","docs/迁出方案.md","provision/openbao-provision.json","provision/redis-dbs.json","provision/redpanda-topics.json"]},{"id":"c673ed2d02b23a2eb750cbaf89b357c383cb6418","message":"refactor(catalog): CHG-034 数字员工OS 更名为数字智能层(digital-intelligence-layer)\n\n- Catalog 项目 id、EmploymentTransferred 消费者、AppManifest 草案与用量投影契约改为新标识;fact catalogFingerprint 同步\n- 契约 id os-usage-projection-api.v1 → dil-usage-projection-api.v1(modules.json、cost-capacity、caddy-routes;网关前缀 /api/v1/cost/ 不变)\n- stack/provision:OpenBao 应用列表、Redis 库说明、Redpanda 重放 topic 与消费组名;测试、夹具、注释与文档用词同步\n- 不改:已发布 Schema 与生成代码、已应用迁移、decisions.json、docs/报告/证据、ERK 固定快照、工作区目录路径、\n os-product 协议名、凭据台账 stack/credentials/、带日期的现存资源名、旧栈卷名、2026-08 移植回灌等历史记录行\n- 用户 2026-10-12 以 Catalog Owner 签署:硬切(运行库旧登记观察期保留,A2 新增新 id 登记),现在合入\n- 生成:在 4bfc0b81 上重放 03 切换执行/工具/rename-cp.py(03 233f219)与 sync-fact-schema-digests --write\n- 材料:平台治理/doc/decisions/CHG-034-材料/(治理仓 65a87a4)\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/c673ed2d02b23a2eb750cbaf89b357c383cb6418","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-12T08:36:20-07:00","added":[],"removed":[],"modified":["provision/openbao-provision.json","provision/redis-dbs.json","provision/redpanda-topics.json"]},{"id":"12d40ebb94d7948d7307f017585450996f513bbc","message":"feat(workbench): EES 只读宿主接入工作台——第 19 个探针、语义目录实时读取与 /ees/* 入口路由\n\nC1 首消费者(只读正式宿主 H2/O1/I1/C1 批准记录 §5)的工作台侧实现:\n- 运行信息页新增「受托独立服务」:经入口读 EES 公开就绪探针 /ees/health/ready(不带令牌),\n 计入「读取全部 N 个探针」(dev 为 18 + 1);200+ready 就绪、503 未就绪、502/404 探测失败。\n 同源前缀登记在 features/platform/hosted-services.ts,未登记的受托服务不探测。\n- EES 服务工作区「语义目录」:登录后点按钮经 /ees/api/v1/semantics/* 读取三个语义读操作\n (按游标读完,页数有上限),对照快照 catalogRevision;401/403/404/503 各给说明,\n EES 拒绝不清平台会话;未登录不渲染,标签内容与快照逐字一致(MW-07 不变)。\n- stack/caddy/Caddyfile:handle /ees/* + uri strip_prefix 转发 {$PLATFORM_EES_UPSTREAM:host.docker.internal:4432};\n 不用 handle_path(排在全部 handle 之后,会被工作台兜底抢先)。check:caddy 与 caddy validate 通过。\n- 用例:RT-06(受托探针计数、不带令牌、502 探测失败)、MW-22(实时读取、游标、拒绝说明、会话保留),\n check-workbench-ui REQUIRED_CASES 92 → 94;MW-06 的服务入口文字随概览更新。\n- 文档:runbook 新增「EES 只读正式宿主接入工作台」(含换工作台客户端时两条单值 OIDC 信任的连带改动);\n formal-host README 补工作台接入。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/12d40ebb94d7948d7307f017585450996f513bbc","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-11T19:06:09-07:00","added":[],"removed":[],"modified":["caddy/Caddyfile"]},{"id":"45363b29810308fee90f67a8ccad12d4453507cd","message":"Merge remote-tracking branch 'origin/main' into claude/ees-ktv-c1-20261011\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/45363b29810308fee90f67a8ccad12d4453507cd","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-11T16:32:37-07:00","added":[],"removed":[],"modified":["backup/managed-backup.py","backup/test_managed_backup.py","release-candidate.schema.json"]},{"id":"0da7d0b960ffa4014061df6297eca8908196d38e","message":"feat(permission): 决策接口新增 Human OIDC 入口,供 EES HUMAN_REQUEST_TOKEN 画像调用\n\n- 新 env PLATFORM_DECISION_HUMAN_OIDC_TRUSTS:1..8 条 {issuer, audience, endpointOrigin?},\n 逐条沿用角色管理入口的校验(开发环境才允许回环 HTTP;staging/production 拒绝),重复或非法即\n DECISION_HUMAN_ENTRY_TRUST_INVALID 启动失败;未设即关闭,行为不变\n- DecisionHumanEntryVerifier 只处理 POST /api/v1/decisions:令牌声明的 (iss, aud) 命中登记才接手,\n 按固定信任完整验签并逐请求 UserInfo 回查,失败直接拒绝、不回落;未命中交回原链(machine / 通用 JWT 不变)\n- 决策适配器:经此入口时请求体 actor 须为 human/oidc,actor_id、client_id、session_id 逐项等于已验签\n 的 subject、clientId(OIDC 客户端)与 sid,否则 context-invalid;账本 appId 仍为 clientId\n- 角色管理入口抽出 createEntryIdentityClient 共用;compose 透传与 runbook、对接说明书同步\n- 测试:新增 5 例入口测试与 2 例适配器测试;api-nestjs typecheck 通过,相关 6 个文件 72/72;\n 对「不回落」与 sid 校验做过故意破坏的负向自检\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/0da7d0b960ffa4014061df6297eca8908196d38e","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-11T16:15:16-07:00","added":[],"removed":[],"modified":["compose.yaml"]}],"total_commits":0,"head_commit":{"id":"fbc127c8341c596329f98fb1f9eb8f17e210a07e","message":"chore(chg036): merge CHG-034 stack history and refresh declarations\n","url":"https://gitea.g-hi.com/luoanwu/infra/commit/fbc127c8341c596329f98fb1f9eb8f17e210a07e","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-12T15:12:45-07:00","added":[],"removed":[],"modified":["caddy/Caddyfile","compose.yaml","declarations/SOURCE.json","declarations/caddy-routes.json","declarations/modules.json","docs/迁出方案.md","provision/openbao-provision.json","provision/redis-dbs.json","provision/redpanda-topics.json"]},"repository":{"id":133,"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":"infra","full_name":"luoanwu/infra","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":455,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra/languages","html_url":"https://gitea.g-hi.com/luoanwu/infra","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/infra","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/infra.git","clone_url":"https://gitea.g-hi.com/luoanwu/infra.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-11T21:11:15+08:00","updated_at":"2026-10-12T07:28: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
|
1
|
6
|
1791843203
|
1791843232
|
0
|
1791843202
|
1791843232
|
|
|
0
|
Edit
Delete
|
|
25667
|
Bump eslint from 10.5.0 to 10.11.0 and package.jso Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)...
|
137
|
5
|
proxy.yml
|
6
|
5
|
0
|
refs/heads/main
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"949feb2413d6458794dcd2491c4babbbce0c15c1","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/d1fcc24e82935aad3ffaca8fa0af970179d4da3c...949feb2413d6458794dcd2491c4babbbce0c15c1","commits":[{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","message":"chore: update dependencies and add license files (#1642)\n\n* chore: update dependencies and add license files\n\n- Bump @actions/cache from 6.2.0 to 6.3.0 in package.json and package-lock.json\n- Update @actions/glob from 0.6.1 to 0.7.0 in package-lock.json\n- Update brace-expansion from 5.0.9 to 5.0.12 in package.json and package-lock.json\n- Bump undici from 6.28.0 to 6.29.0 in package-lock.json\n- Add license files for @actions/glob and minimatch dependencies\n\n* chore: update minimatch dependency file\n\n---------\n\nCo-authored-by: HarithaVattikuti \u003c73516759+HarithaVattikuti@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","author":{"name":"Haritha","email":"73516759+v-HarithaVattikuti@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:39:15-05:00","added":[".licenses/npm/@actions/glob.dep.yml",".licenses/npm/minimatch.dep.yml"],"removed":[".licenses/npm/@actions/glob-0.6.1.dep.yml",".licenses/npm/@actions/glob-0.7.0.dep.yml",".licenses/npm/minimatch-10.2.6.dep.yml",".licenses/npm/minimatch-3.1.5.dep.yml"],"modified":[".licenses/npm/@actions/cache.dep.yml",".licenses/npm/brace-expansion.dep.yml",".licenses/npm/undici.dep.yml","dist/cache-save/index.js","dist/setup/index.js","package-lock.json","package.json"]},{"id":"54337e0d02de9202d0948aaff36ad556375497b9","message":"Bump eslint-plugin-n from 18.1.0 to 18.3.0 (#1638)\n\nBumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 18.1.0 to 18.3.0.\n- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)\n- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v18.1.0...v18.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint-plugin-n\n dependency-version: 18.3.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/54337e0d02de9202d0948aaff36ad556375497b9","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:45:08-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","message":"Bump jest-each from 30.4.1 to 30.5.2 (#1636)\n\nBumps [jest-each](https://github.com/jestjs/jest/tree/HEAD/packages/jest-each) from 30.4.1 to 30.5.2.\n- [Release notes](https://github.com/jestjs/jest/releases)\n- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-each)\n\n---\nupdated-dependencies:\n- dependency-name: jest-each\n dependency-version: 30.5.2\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:44:20-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7f84f1d52d0c56afb45c62fee31a93b843cea4d6","message":"Bump pnpm/action-setup from 6.0.10 to 6.1.0 (#1631)\n\nBumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.10 to 6.1.0.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/0977fd99725f1db4007ccb2928dbb4e90d06cc86...ea17c68df8912ef543352723c149a84f56e3d413)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n dependency-version: 6.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7f84f1d52d0c56afb45c62fee31a93b843cea4d6","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-25T16:05:28-05:00","added":[],"removed":[],"modified":[".github/workflows/e2e-cache.yml"]}],"total_commits":0,"head_commit":{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"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":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+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
|
1791846458
|
1791846519
|
0
|
1791844717
|
1791846519
|
|
|
0
|
Edit
Delete
|
|
25684
|
Detect case insensitive uploads + Bump @actions/ar Detect case insensitive uploads + Bump @actions/artifact to version 0.3.3 (#106)...
|
138
|
5
|
codeql-analysis.yml
|
6
|
5
|
0
|
refs/tags/v2.1.2
|
c8879bf5aef7bef66f9b82b197f34c4eeeb1731b
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.1.2","bef {"ref":"refs/tags/v2.1.2","before":"0000000000000000000000000000000000000000","after":"c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","commits":[],"total_commits":0,"head_commit":{"id":"c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","message":"Detect case insensitive uploads + Bump @actions/artifact to version 0.3.3 (#106)\n\n* Detect case insensitive uploads\r\n\r\n* PR feedback","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/c8879bf5aef7bef66f9b82b197f34c4eeeb1731b","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-31T19:22:08+02:00","added":[],"removed":[],"modified":["README.md","dist/index.js","package-lock.json","package.json","src/search.ts"]},"repository":{"id":138,"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":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38: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
|
1791850424
|
1791850514
|
0
|
1791844728
|
1791850514
|
|
|
0
|
Edit
Delete
|
|
25696
|
Update README.md
|
139
|
5
|
codeql-analysis.yml
|
6
|
5
|
0
|
refs/tags/v2.0.1
|
1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.0.1","bef {"ref":"refs/tags/v2.0.1","before":"0000000000000000000000000000000000000000","after":"1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","commits":[],"total_commits":0,"head_commit":{"id":"1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","message":"Update README.md","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-15T12:35:21+02:00","added":[],"removed":[],"modified":["README.md"]},"repository":{"id":139,"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":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+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
|
1791854114
|
1791854145
|
0
|
1791844740
|
1791854145
|
|
|
0
|
Edit
Delete
|
|
25776
|
docs: 记录 P12 云测归因与 E2a 验证结果
|
125
|
16
|
verify.yml
|
6
|
16
|
0
|
refs/heads/main
|
85e2c17b4829f451e34f938ca6c11354a0b17f30
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"faac5481c1cca66e4708222686b6588a43938150","after":"85e2c17b4829f451e34f938ca6c11354a0b17f30","compare_url":"https://gitea.g-hi.com/pengzhiyu/IAM/compare/faac5481c1cca66e4708222686b6588a43938150...85e2c17b4829f451e34f938ca6c11354a0b17f30","commits":[{"id":"85e2c17b4829f451e34f938ca6c11354a0b17f30","message":"docs: 记录 P12 云测归因与 E2a 验证结果\n\n归档原两份任务文档中累计的候选验证、单轮云测、持有成本分析和 E2a 实施记录,保持历史失败及授权边界可追溯。\n\n实现内容:\n- 记录 50 次入口拒绝的真实关联证据与尚未验收的容量目标\n- 记录三个期限检查点计时的实现、首例测试修正和独立提交\n- 区分历史完整检查、共享报告覆盖与当前组合的定向复验\n- 更新当前状态并说明下一步隔离候选验证建议\n\n验证:\n- 文件摘要、独立执行日志和实际提交内容核对通过\n- 当前组合定向 28 项单测、18 项集成及 26 项 Python 测试通过\n- 文档差异、相对文件链接和 git diff --check 检查通过\n- 本次不新增完整构建、候选冻结或云测结果\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/85e2c17b4829f451e34f938ca6c11354a0b17f30","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:42:04-07:00","added":[],"removed":[],"modified":["docs/tasks/P12-auth-ingress-attribution-design.md","docs/tasks/P12-software-optimization.md"]},{"id":"536e36cfae600b8bbdc378012e723ffbbd34a491","message":"feat(protocol): 增加刷新期限检查点诊断计时\n\n现有粗阶段无法区分三次期限复核的耗时,为后续容量归因补齐固定观测。\n\n实现内容:\n- 在原 P0/P1/P2 检查处分别计时,保留 SQL、事务、期限及回滚顺序\n- 同步诊断读取白名单,保留旧记录的阶段缺失语义\n- 覆盖嵌套计时、导出大小、检查短路、迟到期回滚和旧记录兼容\n\n验证:\n- Java 25 离线 Maven 定向 verify:AuthRequestDiagnosticsTest、RefreshExpiryGuardTest、CapacityDiagnosticsTest、AuthDiagnosticsTestProbeTest 共 28 项单测及 RefreshExpiryLifecycleIT 18 项集成全部通过\n- python3 -m unittest discover -s scripts/capacity -p 'test_*.py':26 项通过\n- Spotless、编译、打包及 git diff --check 通过\n- 本次提交前未重跑完整后端或控制台检查,不将此前完整结果当作当前全部组合的重新验收\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/536e36cfae600b8bbdc378012e723ffbbd34a491","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:40:04-07:00","added":[],"removed":[],"modified":["iam-server/src/main/java/com/iam/server/protocol/RefreshExpiryGuard.java","iam-server/src/main/java/com/iam/server/protocol/RefreshGovernance.java","iam-server/src/main/java/com/iam/server/security/AuthRequestDiagnostics.java","iam-server/src/test/java/com/iam/server/protocol/CapacityDiagnosticsTest.java","iam-server/src/test/java/com/iam/server/protocol/RefreshExpiryGuardTest.java","iam-server/src/test/java/com/iam/server/protocol/RefreshExpiryLifecycleIT.java","iam-server/src/test/java/com/iam/server/security/AuthRequestDiagnosticsTest.java","scripts/capacity/auth_diagnostics.py","scripts/capacity/test_auth_diagnostics.py"]},{"id":"a435000ebba0784762f27ae3f1a04e1159cf0617","message":"feat: 增加权限说明与审计操作对象快照\n\n为控制台权限清单提供使用说明,并让操作记录在对象改名或归档后仍能识别操作对象。\n\n实现内容:\n- 新增 V29 迁移及可空权限说明,支持完整替换、输入校验和新旧清单摘要兼容\n- 平台与企业目录返回说明,保持本人有效权限代码集合不变\n- 在业务事务内保存受控对象代码快照,审计列表和详情增加类型、名称和展示摘要\n- 校验事件与对象类型匹配,保留旧摘要、安全投影和企业访问边界\n- 补充迁移、接口和审计安全测试,同步接口合同、数据字典与前端接入说明\n\n验证:\n- Java 25 下执行 ./mvnw -B -ntp -pl iam-server -am -Dit.test=PermissionDescriptionIT,AuditReadIT,AuthorizationIT,GroupLifecycleIT,MigrationIT,FoundationIT -Dfailsafe.failIfNoSpecifiedTests=false verify:通过\n- Java 25 下执行 ./mvnw -B -ntp -pl iam-server -am -Dit.test=AuditReadIT,AuthorizationMigrationIT,ApplicationLifecycleUpgradeIT,MachineCredentialUpgradeIT,AuditRetentionIT -Dfailsafe.failIfNoSpecifiedTests=false verify:通过\n- Java 25 下执行 ./mvnw -B -ntp -pl iam-server -am -Dit.test=AuditReadIT,GroupLifecycleIT -Dfailsafe.failIfNoSpecifiedTests=false verify:通过\n- 三轮去重共 180 个单元测试、83 个集成测试通过,格式检查、编译和打包通过\n- 权限清单 JSON Schema 语法校验及 git diff --check 通过\n- 未执行前端浏览器接入验证,未重启演示环境\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/a435000ebba0784762f27ae3f1a04e1159cf0617","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:36:49-07:00","added":["docs/console/permission-description-audit-target-handoff.md","iam-server/src/main/java/com/iam/server/accounts/AuditTargetSnapshot.java","iam-server/src/main/resources/db/migration/V29__permission_description.sql","iam-server/src/test/java/com/iam/server/protocol/PermissionDescriptionIT.java"],"removed":[],"modified":["docs/audit-security.md","docs/authorization.md","docs/data-foundation.md","docs/schemas/permission-catalog.schema.json","iam-server/src/main/java/com/iam/server/accounts/AccountStore.java","iam-server/src/main/java/com/iam/server/accounts/AuditReadService.java","iam-server/src/main/java/com/iam/server/accounts/AuthorizationService.java","iam-server/src/test/java/com/iam/server/data/AuthorizationMigrationIT.java","iam-server/src/test/java/com/iam/server/data/MigrationIT.java","iam-server/src/test/java/com/iam/server/protocol/AuditReadIT.java"]}],"total_commits":0,"head_commit":{"id":"85e2c17b4829f451e34f938ca6c11354a0b17f30","message":"docs: 记录 P12 云测归因与 E2a 验证结果\n\n归档原两份任务文档中累计的候选验证、单轮云测、持有成本分析和 E2a 实施记录,保持历史失败及授权边界可追溯。\n\n实现内容:\n- 记录 50 次入口拒绝的真实关联证据与尚未验收的容量目标\n- 记录三个期限检查点计时的实现、首例测试修正和独立提交\n- 区分历史完整检查、共享报告覆盖与当前组合的定向复验\n- 更新当前状态并说明下一步隔离候选验证建议\n\n验证:\n- 文件摘要、独立执行日志和实际提交内容核对通过\n- 当前组合定向 28 项单测、18 项集成及 26 项 Python 测试通过\n- 文档差异、相对文件链接和 git diff --check 检查通过\n- 本次不新增完整构建、候选冻结或云测结果\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/85e2c17b4829f451e34f938ca6c11354a0b17f30","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T08:42:04-07:00","added":[],"removed":[],"modified":["docs/tasks/P12-auth-ingress-attribution-design.md","docs/tasks/P12-software-optimization.md"]},"repository":{"id":125,"owner":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"228834386@qq.com","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"name":"IAM","full_name":"pengzhiyu/IAM","description":"Identity and Access Management(身份识别与访问管理)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":101474,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM/languages","html_url":"https://gitea.g-hi.com/pengzhiyu/IAM","url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM","link":"","ssh_url":"git@gitea.g-hi.com:pengzhiyu/IAM.git","clone_url":"https://gitea.g-hi.com/pengzhiyu/IAM.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-08T17:04:24+08:00","updated_at":"2026-10-12T23:15: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":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"sender":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"}}...
|
push
|
2
|
4
|
1791872390
|
1791872617
|
0
|
1791852703
|
1791872617
|
|
|
0
|
Edit
Delete
|
|
26086
|
docs(device): bind final S2 fixed artifact verific docs(device): bind final S2 fixed artifact verification...
|
135
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
8a42cf77069e4a70692e366281b75ab8848f3e7c
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"4b39ba2e2da24a46314e9d171f4c3636d023290d","after":"8a42cf77069e4a70692e366281b75ab8848f3e7c","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/4b39ba2e2da24a46314e9d171f4c3636d023290d...8a42cf77069e4a70692e366281b75ab8848f3e7c","commits":[{"id":"8a42cf77069e4a70692e366281b75ab8848f3e7c","message":"docs(device): bind final S2 fixed artifact verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/8a42cf77069e4a70692e366281b75ab8848f3e7c","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-18T04:04:18-07:00","added":["reports/s2-candidate.latest.json"],"removed":[],"modified":["reports/evidence-current.latest.json"]}],"total_commits":0,"head_commit":{"id":"8a42cf77069e4a70692e366281b75ab8848f3e7c","message":"docs(device): bind final S2 fixed artifact verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/8a42cf77069e4a70692e366281b75ab8848f3e7c","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-18T04:04:18-07:00","added":["reports/s2-candidate.latest.json"],"removed":[],"modified":["reports/evidence-current.latest.json"]},"repository":{"id":135,"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-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2119,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-12T21:14:44+08:00","updated_at":"2026-10-18T19:02: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
|
1792321736
|
0
|
1792321485
|
1792321736
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
26218
|
test: record shared retrieval boundary and native test: record shared retrieval boundary and native acceptance evidence...
|
84
|
5
|
governance.yml
|
6
|
5
|
0
|
refs/heads/main
|
bd10e2e68002ae13667fb76ecc1177e179996146
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"db93444d86694304ad66fc4d51864c6d89860f85","after":"bd10e2e68002ae13667fb76ecc1177e179996146","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/compare/db93444d86694304ad66fc4d51864c6d89860f85...bd10e2e68002ae13667fb76ecc1177e179996146","commits":[{"id":"bd10e2e68002ae13667fb76ecc1177e179996146","message":"test: record shared retrieval boundary and native acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/bd10e2e68002ae13667fb76ecc1177e179996146","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-20T07:00:03-07:00","added":["reports/shared-retrieval-boundary.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.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-kit.latest.json","reports/governance.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},{"id":"65dddcfc06d5ac4a694e74e3b43a455bb748f993","message":"docs: refresh current retrieval acceptance counts and evidence scope\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/65dddcfc06d5ac4a694e74e3b43a455bb748f993","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-20T06:55:31-07:00","added":[],"removed":[],"modified":["CLAUDE.md"]},{"id":"6c21d91704da6ca4ed459bbdf05dba678e650252","message":"fix(governance): remove all matching counters in failure probe\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/6c21d91704da6ca4ed459bbdf05dba678e650252","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-20T06:52:23-07:00","added":[],"removed":[],"modified":["docs/shared-retrieval-boundary.md","scripts/check-runtime-failure-coverage.mjs"]},{"id":"5bbb68c3bdadc6b62752432539298fd87cd1bfd0","message":"fix(retrieval): enforce tenant and source integrity before recall\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/5bbb68c3bdadc6b62752432539298fd87cd1bfd0","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-20T06:47:11-07:00","added":["docs/shared-retrieval-boundary.md","packages/knowledge-retrieval/src/boundary.test.ts"],"removed":[],"modified":["CLAUDE.md","README.md","apps/api-fastify/src/modules/knowledge/knowledge.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/knowledge/knowledge.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/README.md","docs/domain/knowledge-cloud-blueprint.md","docs/domain/owner-matrix.md","packages/knowledge-retrieval/src/index.test.ts","packages/knowledge-retrieval/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"bd10e2e68002ae13667fb76ecc1177e179996146","message":"test: record shared retrieval boundary and native acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud/commit/bd10e2e68002ae13667fb76ecc1177e179996146","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-20T07:00:03-07:00","added":["reports/shared-retrieval-boundary.latest.json"],"removed":[],"modified":["reports/agent-skill-sync.latest.json","reports/auth-governance.latest.json","reports/backend-behavior-parity.latest.json","reports/container-acceptance.latest.json","reports/contract-consumers.latest.json","reports/disaster-recovery.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-kit.latest.json","reports/governance.latest.json","reports/knowledge-index.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/observability.latest.json","reports/os-product.latest.json","reports/outbox-operations.latest.json","reports/production-operations.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-failure-coverage.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":84,"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-knowledge-cloud","full_name":"luoanwu/juhai-knowledge-cloud","description":"巨嗨知识云:受治理的知识唯一真源与混合证据检索","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1894,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-knowledge-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-knowledge-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-knowledge-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T09:45:53+08:00","updated_at":"2026-10-20T15:50: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
|
6
|
1792505364
|
1792505374
|
0
|
1792505363
|
1792505374
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
26669
|
feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vecto feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort...
|
160
|
5
|
ci.yml
|
6
|
5
|
0
|
refs/heads/main
|
b0b7ddc80b20bf61675f5afea0d41764e8cfa770
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b581d18e4449cb04a547e46807641a4c991417e7","after":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/b581d18e4449cb04a547e46807641a4c991417e7...b0b7ddc80b20bf61675f5afea0d41764e8cfa770","commits":[{"id":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","message":"feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort\n\n04 M7 对调用方的合同是候选 ai-route.v1(@juhai/client-ai rc.8):先申请路由决策,\nprovider=litellm 时交平台 invoke 执行。原 AI_GATEWAY_BASE_URL 只换基址,对不上,\n另写 ModelPort 实现,网关开关保持原样:\n\n- shared/ai/eios-ai-route-model-port.ts:route → invoke,形状、决策判据与 baseUrl 规则\n 逐字段对齐 04 client-ai 源码;拒绝、形状不对、远端错误、不可达一律抛\n EiosAiRouteError,不回退直连;非 litellm 路由上报 released 释放预留后拒绝;\n invoke 承接不了的请求(工具、JSON 模式、图片、扩展请求体、embedding、流式)\n 默认拒绝且不发路由请求,EIOS_AI_ROUTE_UNSUPPORTED=direct 才交回默认实现。\n- config/eios/ai.ts 新增 EIOS_AI_ROUTE_*(默认 off);install-eios-adapters 新增\n aiRoute,参数齐全才 setModelPort。\n- model-port.ts:对话请求加可选 governance;新增可选 embedBatch 与 embedTexts。\n- knowledge-vector 的 4 处 /embeddings 直连改经 ModelPort,错误文案不变,向量数\n 不符判失败;lint 规则扩到 /embeddings 结尾的字面量。\n\n测试新增 13 项(loopback 夹具与假端口,未连真实 04)。读数:type-check 0 错误;\nlint 0 错误、3189 条警告;单测 8981/8997(17 项基线失败);inventory 10 项一致。\n文档:lanes/ai.md §3.3 与 §6、README、改造计划 P1 执行状态、总设计 B-06 行号、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b0b7ddc80b20bf61675f5afea0d41764e8cfa770","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-29T23:43:33-07:00","added":["backend/src/modules/knowledge-capture/knowledge-vector.service.test.ts","backend/src/shared/ai/eios-ai-route-model-port.test.ts","backend/src/shared/ai/eios-ai-route-model-port.ts"],"removed":[],"modified":[".env.eios.example","backend/.eslintrc.cjs","backend/src/config/eios/ai.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/shared/ai/model-port.ts","backend/src/shared/ports/install-eios-adapters.test.ts","backend/src/shared/ports/install-eios-adapters.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/ai-modules.md","docs/eios-transformation/inventory/dead-code-and-root.md","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/ai.md","docs/eios-transformation/总设计-2026-10-27.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","message":"feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort\n\n04 M7 对调用方的合同是候选 ai-route.v1(@juhai/client-ai rc.8):先申请路由决策,\nprovider=litellm 时交平台 invoke 执行。原 AI_GATEWAY_BASE_URL 只换基址,对不上,\n另写 ModelPort 实现,网关开关保持原样:\n\n- shared/ai/eios-ai-route-model-port.ts:route → invoke,形状、决策判据与 baseUrl 规则\n 逐字段对齐 04 client-ai 源码;拒绝、形状不对、远端错误、不可达一律抛\n EiosAiRouteError,不回退直连;非 litellm 路由上报 released 释放预留后拒绝;\n invoke 承接不了的请求(工具、JSON 模式、图片、扩展请求体、embedding、流式)\n 默认拒绝且不发路由请求,EIOS_AI_ROUTE_UNSUPPORTED=direct 才交回默认实现。\n- config/eios/ai.ts 新增 EIOS_AI_ROUTE_*(默认 off);install-eios-adapters 新增\n aiRoute,参数齐全才 setModelPort。\n- model-port.ts:对话请求加可选 governance;新增可选 embedBatch 与 embedTexts。\n- knowledge-vector 的 4 处 /embeddings 直连改经 ModelPort,错误文案不变,向量数\n 不符判失败;lint 规则扩到 /embeddings 结尾的字面量。\n\n测试新增 13 项(loopback 夹具与假端口,未连真实 04)。读数:type-check 0 错误;\nlint 0 错误、3189 条警告;单测 8981/8997(17 项基线失败);inventory 10 项一致。\n文档:lanes/ai.md §3.3 与 §6、README、改造计划 P1 执行状态、总设计 B-06 行号、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b0b7ddc80b20bf61675f5afea0d41764e8cfa770","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-29T23:43:33-07:00","added":["backend/src/modules/knowledge-capture/knowledge-vector.service.test.ts","backend/src/shared/ai/eios-ai-route-model-port.test.ts","backend/src/shared/ai/eios-ai-route-model-port.ts"],"removed":[],"modified":[".env.eios.example","backend/.eslintrc.cjs","backend/src/config/eios/ai.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/shared/ai/model-port.ts","backend/src/shared/ports/install-eios-adapters.test.ts","backend/src/shared/ports/install-eios-adapters.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/ai-modules.md","docs/eios-transformation/inventory/dead-code-and-root.md","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/ai.md","docs/eios-transformation/总设计-2026-10-27.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"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":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102295,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.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":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-30T14:07:44+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
|
20
|
1793343643
|
1793347854
|
0
|
1793343457
|
1793347854
|
group: ci-${{ gitea.ref }}
cancel-in-progress: group: ci-${{ gitea.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23417
|
C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stde C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)...
|
60
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
6d7311f3c50d0894683ed1b0681f23bde45a35c4
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"262802ed1be2f708784260d2fd49e110a9c365f9","after":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","compare_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/compare/262802ed1be2f708784260d2fd49e110a9c365f9...6d7311f3c50d0894683ed1b0681f23bde45a35c4","commits":[{"id":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","message":"C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)\n\n远端 api-fastify#test 失败但 CI 日志只有 turbo 的「exited (1)」——失败步\n此前只打 stderrTail,vitest 具体失败用例(stdout 经 turbo 转发)全部丢失。\n失败时补打 stdout 尾巴(test 步扩到 12KB),远端判责不再需要登机。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/6d7311f3c50d0894683ed1b0681f23bde45a35c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:49:21-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"6d7311f3c50d0894683ed1b0681f23bde45a35c4","message":"C64e:编排失败步补打 stdout 尾巴(vitest 失败细节在 stdout 而非 stderr)\n\n远端 api-fastify#test 失败但 CI 日志只有 turbo 的「exited (1)」——失败步\n此前只打 stderrTail,vitest 具体失败用例(stdout 经 turbo 转发)全部丢失。\n失败时补打 stdout 尾巴(test 步扩到 12KB),远端判责不再需要登机。\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform/commit/6d7311f3c50d0894683ed1b0681f23bde45a35c4","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-13T23:49:21-07:00","added":[],"removed":[],"modified":["scripts/check-runtime-acceptance.mjs"]},"repository":{"id":60,"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":"haizan-ai-production-platform","full_name":"luoanwu/haizan-ai-production-platform","description":"嗨赞AI制作平台:音频分离、歌曲结构分析与歌词精对齐生产工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":3860,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haizan-ai-production-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haizan-ai-production-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/haizan-ai-production-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-14T12:25:49+08:00","updated_at":"2026-07-14T14:40:00+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
|
1784011769
|
1784011850
|
0
|
1784011767
|
1784011850
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23432
|
Harden recording release E2E assertion
|
62
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
3d3d1a4d8c4ab00b1cefbc239838007a04296172
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"73bd623dfedff79a02fac961d1c16f106137e2df","after":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","compare_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/compare/73bd623dfedff79a02fac961d1c16f106137e2df...3d3d1a4d8c4ab00b1cefbc239838007a04296172","commits":[{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"3d3d1a4d8c4ab00b1cefbc239838007a04296172","message":"Harden recording release E2E assertion\n","url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition/commit/3d3d1a4d8c4ab00b1cefbc239838007a04296172","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-21T18:58:06-07:00","added":[],"removed":[],"modified":[".gitignore","apps/web/e2e/acceptance.spec.ts","reports/contract-consumers.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":62,"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":"voiceprint-recognition","full_name":"luoanwu/voiceprint-recognition","description":"ECAPA+WavLM 声纹注册识别、1:N ANN 检索与声音特征画像平台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":1460,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition/languages","html_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voiceprint-recognition","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voiceprint-recognition.git","clone_url":"https://gitea.g-hi.com/luoanwu/voiceprint-recognition.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":2,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-15T08:42:42+08:00","updated_at":"2026-07-22T01:13:44+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
|
1784685492
|
1784685545
|
0
|
1784685491
|
1784685545
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23442
|
fix(governance): snapshot report inputs before run fix(governance): snapshot report inputs before runners...
|
64
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
b0381bdeb68a35d172581d6736b9059720e3ad1b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"91550451861f997024b06c845897ea59af85e238","after":"b0381bdeb68a35d172581d6736b9059720e3ad1b","compare_url":"https://gitea.g-hi.com/luoanwu/voice-conversion/compare/91550451861f997024b06c845897ea59af85e238...b0381bdeb68a35d172581d6736b9059720e3ad1b","commits":[{"id":"b0381bdeb68a35d172581d6736b9059720e3ad1b","message":"fix(governance): snapshot report inputs before runners\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/b0381bdeb68a35d172581d6736b9059720e3ad1b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:34:03-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-report-provenance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/report-provenance.mjs"]}],"total_commits":0,"head_commit":{"id":"b0381bdeb68a35d172581d6736b9059720e3ad1b","message":"fix(governance): snapshot report inputs before runners\n","url":"https://gitea.g-hi.com/luoanwu/voice-conversion/commit/b0381bdeb68a35d172581d6736b9059720e3ad1b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-22T00:34:03-07:00","added":[],"removed":[],"modified":["CLAUDE.md","docs/governance-experience.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/report-provenance.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","scripts/check-report-provenance.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/lib/report-provenance.mjs"]},"repository":{"id":64,"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":"voice-conversion","full_name":"luoanwu/voice-conversion","description":"SoulX-Singer personal singing voice conversion platform","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":907,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion/languages","html_url":"https://gitea.g-hi.com/luoanwu/voice-conversion","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/voice-conversion","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/voice-conversion.git","clone_url":"https://gitea.g-hi.com/luoanwu/voice-conversion.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-22T14:37:12+08:00","updated_at":"2026-07-22T15:25:37+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
|
1784705658
|
1784705716
|
0
|
1784705657
|
1784705716
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23460
|
docs(governance): record Gitea publish baseline
|
54
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
94e3f1b529034c902d205637ed69033238b5b594
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"da8f52db37f5b42d035f92ad27a45067bc57dfa9","after":"94e3f1b529034c902d205637ed69033238b5b594","compare_url":"https://gitea.g-hi.com/luoanwu/base-framework/compare/da8f52db37f5b42d035f92ad27a45067bc57dfa9...94e3f1b529034c902d205637ed69033238b5b594","commits":[{"id":"94e3f1b529034c902d205637ed69033238b5b594","message":"docs(governance): record Gitea publish baseline\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/94e3f1b529034c902d205637ed69033238b5b594","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:41:37-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"94e3f1b529034c902d205637ed69033238b5b594","message":"docs(governance): record Gitea publish baseline\n","url":"https://gitea.g-hi.com/luoanwu/base-framework/commit/94e3f1b529034c902d205637ed69033238b5b594","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-30T07:41:37-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json"]},"repository":{"id":54,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"base-framework","full_name":"luoanwu/base-framework","description":"基础框架 monorepo","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":995,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework/languages","html_url":"https://gitea.g-hi.com/luoanwu/base-framework","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/base-framework","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/base-framework.git","clone_url":"https://gitea.g-hi.com/luoanwu/base-framework.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-07-03T12:24:18+08:00","updated_at":"2026-07-30T22:40:34+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
|
1785422514
|
1785422567
|
0
|
1785422513
|
1785422567
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23469
|
接入阿里模型
|
51
|
5
|
ci.yml
|
7
|
8
|
0
|
refs/heads/main
|
d2c80a998dd127b9cbf72d39436ca7248ffe98ae
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ea5ea97b4d7487a0cd01201fcf404ec4b1913321","after":"d2c80a998dd127b9cbf72d39436ca7248ffe98ae","compare_url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/compare/ea5ea97b4d7487a0cd01201fcf404ec4b1913321...d2c80a998dd127b9cbf72d39436ca7248ffe98ae","commits":[{"id":"d2c80a998dd127b9cbf72d39436ca7248ffe98ae","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d2c80a998dd127b9cbf72d39436ca7248ffe98ae","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T14:49:48+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活AI运营App/screens-ai.jsx","团购本地生活AI运营App/scripts/test-static.mjs"]}],"total_commits":0,"head_commit":{"id":"d2c80a998dd127b9cbf72d39436ca7248ffe98ae","message":"接入阿里模型\n","url":"https://gitea.g-hi.com/luoanwu/yggdrasil-local-life-tools/commit/d2c80a998dd127b9cbf72d39436ca7248ffe98ae","author":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"committer":{"name":"chenjunfeng","email":"developer.jeff.c@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T14:49:48+08:00","added":[],"removed":[],"modified":["团购本地生活AI运营App/app.jsx","团购本地生活AI运营App/index.html","团购本地生活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":87296,"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":1,"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-07-31T14:10:11+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":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"},"sender":{"id":8,"login":"chenjunfeng","login_name":"","source_id":0,"full_name":"","email":"8+chenjunfeng@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/2c6398f22eba2ea6d8f403921eea0967","html_url":"https://gitea.g-hi.com/chenjunfeng","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-03-09T13:22:40+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":"chenjunfeng"}}...
|
push
|
2
|
8
|
1785480594
|
1785480692
|
0
|
1785480593
|
1785480692
|
group: ci-${{ github.ref }}
cancel-in-progress: group: ci-${{ github.ref }}
cancel-in-progress: "true"
...
|
ci-refs/heads/main
|
1
|
Edit
Delete
|
|
23475
|
Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据 Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录...
|
72
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
9618d78da3e668f14e3c1611d7090f45eef0c085
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7638e946e8817308b94a23c028a18ac465c342c6","after":"9618d78da3e668f14e3c1611d7090f45eef0c085","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/compare/7638e946e8817308b94a23c028a18ac465c342c6...9618d78da3e668f14e3c1611d7090f45eef0c085","commits":[{"id":"9618d78da3e668f14e3c1611d7090f45eef0c085","message":"Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录\n\nfix: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/9618d78da3e668f14e3c1611d7090f45eef0c085","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-07-31T06:46:17-07:00","added":["apps/api-fastify/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/src/routes/customer-solutions.ts","apps/api-nestjs/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-nestjs/src/customer-solutions/customer-solutions.controller.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.module.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/web/src/app/solution/[accessToken]/page.tsx","apps/web/src/components/MobileNav.tsx","apps/web/src/features/customer-solutions/api/customer-solutions-api.ts","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","apps/web/src/features/customer-solutions/components/PublicCustomerSolutionView.tsx","apps/web/src/features/customer-solutions/hooks/use-customer-solutions.ts","apps/web/src/features/customer-solutions/lib/floor-plan-analysis.ts","apps/web/src/store/solution-ui.ts","artifacts/project-promo-posters/01-smart-business.png","artifacts/project-promo-posters/02-flow-hub.png","artifacts/project-promo-posters/03-trusted-governance.png","artifacts/project-promo-posters/04-neon-tech.png","docs/audit/2026-07-30-customer-solutions-acceptance.md","docs/audit/2026-07-30-deep-audit.md","docs/domain/customer-solution-design-blueprint.md","packages/contracts/src/solution.ts","reports/gate-selftest.latest.json","reports/module-integration.latest.json","reports/vm-deploy.latest.json","scripts/check-gate-selftest.mjs","scripts/check-module-integration.mjs","scripts/check-vm-deploy.mjs","scripts/lib/report-provenance.test.mjs","scripts/lib/vitest-report.mjs","scripts/lib/vitest-report.test.mjs"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain-glossary.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-role-permissions.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","scripts/vm-deploy.sh"]},{"id":"de7d09aee2a89208f006bc3ca829f289619a64b7","message":"docs: 记录首份远端 CI 绿盘证据(PR #1 / run 30634897066)\n\nGitHub run 30634897066(PR #1,head 0d85a3d)两 job 全绿:\nstatic ✅;runtime 83 用例(contracts 31 / nestjs 26 / fastify 26)、\nUI 8 用例,与本地逐项一致,耗时 3m21s。这是本仓第一份远端绿盘证据。\n\n对照上一次 run 30603461723(push main fdf7b59):runtime 失败于\ntests-floor「expected \u003e= 74, got 0」,整步仅 24s。\n\n刻意不把这次转绿归因到本轮任何一个提交:PR #1 含 7 个提交,除本轮 3 个外\n还有 4 个存量提交(283f1bf…7638e94),其中任一都可能是真正修好它的那个,\n且 7638e94 从未单独在 CI 上跑过。要归因需另构造对照 run。\n\nG14 仍 OPEN:绿盘只覆盖该 PR 分支,github main 最近一次 run 仍红;\n尚未用受控失败 PR 证明违规真被阻断,分支保护 / required checks 也未定位。\nci-gate 行同步改写,明确「不得宣称 PR 已被机器拦截」。\n\npnpm check ✅ 绿。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/de7d09aee2a89208f006bc3ca829f289619a64b7","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:39:36-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json"]},{"id":"0d85a3de6efbf4ca42ba1345bfbc66f9d1f9ac0d","message":"docs: 按真实 CI 证据更正 C23 与 G14\n\n上一提交把一个未经正确验证的结论写进了治理真源,此处更正。\n\nC23 原文断言「全新 clone/CI 上 pnpm check 必红(contracts dist 不存在)」。\n该结论来自 `pnpm --filter \u003capp\u003e typecheck` 的负向测试,而它绕过 turbo;\nCI 实际走 `pnpm typecheck` → `turbo run typecheck`,而 turbo.json 的\ntypecheck/lint/test 均带 dependsOn ^build,contracts 会被自动构建。\nGitHub run 30603461723 的 static job 实际通过,证伪原结论。\nC23 仍然成立的部分:绕过 turbo 的调用路径(.claude/launch.json 直接\npnpm dev、check:ui 的 pnpm --filter build)确实会吃到陈旧 dist——本轮\n409 STALE_VERSION 即由此而来;clean 不删 tsconfig.tsbuildinfo 导致\nclean \u0026\u0026 build 空 emit 是独立真 bug。修复本身保留。\n\nG14 原记「尚无远端 CI 运行证据」已过时。实际已有 run 30603461723\n(push main fdf7b59,2026-07-31T04:10Z):static ✅、runtime ❌\n`tests-floor: expected \u003e= 74, got 0`,整步仅 24s,真实 DB 测试没跑起来。\n地板断言拦住了这次「0 tests 假绿」,但根因未定位,需专项排查 CI 上\nturbo run test --force 为何产不出 vitest 报告。基线表 ci-gate 行同步\n改为「已有远端证据但为红盘」,仍 OPEN。\n\n另记:两个远端 main 不同步(origin 7638e94 / github fdf7b59),\nCI 只挂 github 侧,且只在 pull_request 或 push main 触发。\n\npnpm check ✅ 绿(含 check:governance-docs / check:docs-truth)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/0d85a3de6efbf4ca42ba1345bfbc66f9d1f9ac0d","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:30:18-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json"]},{"id":"67849d6aad796878e6fd40b2e54307780b01442f","message":"chore: 重跑三级门禁并绑定干净工作区证据\n\n上一提交的报告生成于 dirty 工作区(gitSha 指向父提交 7638e94、\nworktreeDirty=true),只能支撑「本地工作区通过」。此处在 a015400 的\n干净检出上重跑三级门禁,让三份 latest 报告的 provenance 统一绑定\n该提交且 worktreeDirty=false——可支撑「提交 a015400 在本机干净工作区\n通过三级门禁」。\n\npnpm check ✅ 5/5\npnpm check:runtime ✅ 83 用例 / 0 失败(PG:55432/juhai_quotation_runtime_20260731d + Redis:6382)\npnpm check:ui ✅ 8 用例 / 0 失败(PG:55432/juhai_quotation_ui_20260731d + Redis:6382)\n\n仍不得外推为远端已发布或 CI 已通过:本分支未推送,无远端 run 证据(G14)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/67849d6aad796878e6fd40b2e54307780b01442f","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:16:25-07:00","added":[],"removed":[],"modified":["reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","reports/vm-deploy.latest.json"]},{"id":"a015400b8aa901246315eb213d20354d6ded3133","message":"fix: 打通契约构建链并补齐方案复核依据\n\n本提交包含两批改动。工作区里它们已交织到同一行/同一 hunk\n(package.json 的 check 串、next.config.ts 的 output),无法拆开单独提交。\n\n── 批次 A:本轮定位并修复(Claude 作业)────────────────────────────\n\n契约包 src/dist 漂移(C23)——P1「运行时到底读哪一份」的隐藏变体:\ntypecheck 与 contracts 单测读 src,两后端运行时经 package main 读 dist。\n`pnpm --filter` 不走 turbo 的 dependsOn ^build,dist 又被 gitignore,\n于是门禁全绿而运行时按旧契约行为。实测症状:dist 缺 versionNo →\nZod 静默 strip → 技术复核恒返 409 STALE_VERSION。\n负向验证:移走 dist 后 typecheck 立刻 TS2307,证明全新 clone/CI 上必红。\n- package.json: check 前置 build:contracts\n- scripts/check-{runtime,ui}-acceptance.mjs: 各加 contracts 构建步骤\n- .claude/launch.json: 四个配置均前置 contracts 构建\n- packages/contracts/package.json: 补 prepare;clean 补删 tsconfig.tsbuildinfo\n (composite 下留着 buildinfo 会让 clean+build 空 emit)\n\n方案表单默认路径不可用(C24):\n「使用客户主联系人」value 为空串,contactId 契约是 uuid().optional(),\n空串不过校验,导致默认状态下表单永不可提交,错误还被汇总成一句\n指不到联系人的话。register 处归一为 undefined。\n\n客户方案复核依据面板:\n技术复核/经理批准需在同一屏看到客户需求、空间与工区、平面图、逐档配置清单。\n清单只渲染规格字段,刻意不展开 product 以免带出 standardPriceCents\n(角色权限单源里技术角色不继承报价域敏感读取)。缺图纸显式标注但不阻断。\n补填资料入口接上此前零消费者的 useUpdateSolution + PATCH /solutions/:id,\n仅在 DRAFT/NEEDS_INFORMATION/REVISION_REQUIRED 开放——修复「目标客群留空\n的方案走到 APPROVED 后永远发布不了且无处补填」的死路。\n\n契约类型补齐:SolutionProduct 增补 product/surveySpace 嵌套(服务端一直下发,\n此前类型比载荷窄)。\n\nE2E 回归锁:新增专打默认联系人路径的用例,兼测复核依据面板与价格红线。\n负向验证:撤回 contactId 修复 → check:ui 报红;还原 → 8 用例全绿。\n\n附带:next.config.ts 的 output 重复定义(TS2783,本轮之前即存在,\n导致 pnpm check 红)改为三元计算,行为等价;check-vm-deploy 的 standalone\n绊网相应收窄为「字面量或该正确三元」,不放宽成 /output:.*standalone/\n(负向验证:三元写反即红)。\n\n── 批次 B:进入本轮前工作区已有的未提交改动(非本轮作业)──────────\n\nVM 部署强化(Dockerfile/compose/vm-deploy.sh/check-vm-deploy.mjs、restore/\ndrill/rollback)、移动端导航 MobileNav、客户方案域后端与验收测试、\n角色权限与模块对接门禁、方案蓝图与验收记录等。这批未经逐项复核,\n如需单独审阅可 `git reset --soft HEAD~1` 后重新拆分。\n\n── 证据(本地工作区,2026-07-31,工作区 dirty)──────────────────\npnpm check ✅ 5/5\npnpm check:runtime ✅ 83 用例 / 0 失败(地板 79→83)\npnpm check:ui ✅ 8 用例 / 0 失败(地板 7→8)\nownTestCases 地板 90→91。未推送、无远端 CI 运行证据(G14 仍 OPEN)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/a015400b8aa901246315eb213d20354d6ded3133","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-07-31T06:13:59-07:00","added":["apps/web/src/components/MobileNav.tsx","docs/audit/2026-07-30-customer-solutions-acceptance.md","reports/vm-deploy.latest.json","scripts/check-vm-deploy.mjs"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain/customer-solution-design-blueprint.md","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/solution.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/gate-selftest.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/module-integration.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-module-integration.mjs","scripts/check-role-permissions.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/vm-deploy.sh"]}],"total_commits":0,"head_commit":{"id":"9618d78da3e668f14e3c1611d7090f45eef0c085","message":"Merge pull request #1: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录\n\nfix: 打通契约构建链、补齐方案复核依据,并按真实 CI 证据更正治理记录","url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system/commit/9618d78da3e668f14e3c1611d7090f45eef0c085","author":{"name":"laoluojuhai","email":"158980461+laoluojuhai@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-07-31T06:46:17-07:00","added":["apps/api-fastify/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-fastify/src/modules/customer-solutions/customer-solutions.service.ts","apps/api-fastify/src/routes/customer-solutions.ts","apps/api-nestjs/prisma/migrations/20260731030000_customer_solution_design/migration.sql","apps/api-nestjs/src/customer-solutions/customer-solutions.controller.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.module.ts","apps/api-nestjs/src/customer-solutions/customer-solutions.service.ts","apps/web/src/app/solution/[accessToken]/page.tsx","apps/web/src/components/MobileNav.tsx","apps/web/src/features/customer-solutions/api/customer-solutions-api.ts","apps/web/src/features/customer-solutions/components/CustomerSolutionWorkbench.tsx","apps/web/src/features/customer-solutions/components/PublicCustomerSolutionView.tsx","apps/web/src/features/customer-solutions/hooks/use-customer-solutions.ts","apps/web/src/features/customer-solutions/lib/floor-plan-analysis.ts","apps/web/src/store/solution-ui.ts","artifacts/project-promo-posters/01-smart-business.png","artifacts/project-promo-posters/02-flow-hub.png","artifacts/project-promo-posters/03-trusted-governance.png","artifacts/project-promo-posters/04-neon-tech.png","docs/audit/2026-07-30-customer-solutions-acceptance.md","docs/audit/2026-07-30-deep-audit.md","docs/domain/customer-solution-design-blueprint.md","packages/contracts/src/solution.ts","reports/gate-selftest.latest.json","reports/module-integration.latest.json","reports/vm-deploy.latest.json","scripts/check-gate-selftest.mjs","scripts/check-module-integration.mjs","scripts/check-vm-deploy.mjs","scripts/lib/report-provenance.test.mjs","scripts/lib/vitest-report.mjs","scripts/lib/vitest-report.test.mjs"],"removed":[],"modified":[".claude/launch.json",".gitignore","CLAUDE.md","README.md","apps/api-fastify/prisma/schema.prisma","apps/api-fastify/src/app.ts","apps/api-fastify/src/modules/fulfillment/fulfillment.service.ts","apps/api-fastify/src/modules/quotations/quotations.service.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/prisma/schema.prisma","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/src/fulfillment/fulfillment.service.ts","apps/api-nestjs/src/quotations/quotations.service.ts","apps/api-nestjs/test/http.acceptance.test.ts","apps/web/e2e/acceptance.spec.ts","apps/web/next.config.ts","apps/web/src/app/globals.css","apps/web/src/app/page.tsx","apps/web/src/components/EventFeed.tsx","apps/web/src/components/MobileOverview.tsx","apps/web/src/features/fulfillment/components/FulfillmentWorkbench.tsx","apps/web/src/features/fulfillment/hooks/use-fulfillment.ts","apps/web/src/features/products/components/ProductLibrary.tsx","apps/web/src/features/quotations/components/QuotationWorkbench.tsx","apps/web/src/hooks/useRealtime.ts","apps/web/src/lib/api.ts","apps/web/tsconfig.json","deploy/vm/.env.example","deploy/vm/Dockerfile","deploy/vm/compose.yaml","docs/deployment/local-vm.md","docs/domain-glossary.md","docs/domain/order-fulfillment-blueprint.md","docs/domain/owner-matrix.md","docs/domain/quotation-blueprint.md","docs/governance-experience.md","package.json","packages/contracts/package.json","packages/contracts/src/contracts.test.ts","packages/contracts/src/index.ts","packages/contracts/src/quotation.ts","packages/contracts/src/realtime.ts","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/role-permissions.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/check-role-permissions.mjs","scripts/check-runtime-acceptance.mjs","scripts/check-ui-acceptance.mjs","scripts/governance-report.mjs","scripts/lib/report-provenance.mjs","scripts/vm-deploy.sh"]},"repository":{"id":72,"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-quotation-system","full_name":"luoanwu/juhai-quotation-system","description":"巨嗨报价系统:Next.js + NestJS/Fastify 双后端治理型报价业务底座","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":4183,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-quotation-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-quotation-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-quotation-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-07-31T03:51:09+08:00","updated_at":"2026-07-31T21:39: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
|
2
|
8
|
1785505645
|
1785505725
|
0
|
1785505645
|
1785505725
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23493
|
fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改 fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改动...
|
74
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
b673ff8c2e248dbea016f88702215123aa58fd03
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"470495fbe7a9692bbb9ef869546e0050c9c73b7e","after":"b673ff8c2e248dbea016f88702215123aa58fd03","compare_url":"https://gitea.g-hi.com/luoanwu/haimate/compare/470495fbe7a9692bbb9ef869546e0050c9c73b7e...b673ff8c2e248dbea016f88702215123aa58fd03","commits":[{"id":"b673ff8c2e248dbea016f88702215123aa58fd03","message":"fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改动\n\n远端 CI 自 2026-08-14 起每次推送都红,共 7 次,无人当真。实测根因有二,\n都与本地环境差异有关,本机绿盘无法暴露(这正是 G14 不可被本地证据替代的原因)。\n\n根因一:假红——测试计数在 CI 下恒为 0\n`CI=true` 时 turbo 给子进程输出着色,实际字节是\n`Tests \\x1b[22m \\x1b[1m\\x1b[32m140 passed`;countPassedTests 的\n/Tests\\s+(\\d+)\\s+passed/ 匹配不到转义序列,于是本地 380、CI 0,\n报成「expected \u003e= 380, got 0」这种看似灾难性回归的消息。\n测试其实全过,坏的是计数器。修复:匹配前先剥 ANSI。\n注意这类假红不会被负向测试或空转测试发现——它们都在本地跑。\n\n根因二:flaky——「篡改 JWT」有约 1/64 概率篡改了个寂寞\ntampered 把签名第 5 位替换成 'A',但 payload 含 exp=now+600,签名每次都变;\n当该位恰好就是 'A' 时,产出的是与合法 token 逐字节相同的串,验签通过,\n断言 401 收到 200。base64url 64 字符 → 每次运行约 1.6% 触发,双后端同款。\n修复:先读该位,改成一个必定不同的字符。这类 flake 会悄悄削弱安全断言。\n\n验证:CI=true 条件下本地复现两处失败,修复后 pnpm check:runtime\nstatus=passed、testsPassed=380(地板 380)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b673ff8c2e248dbea016f88702215123aa58fd03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:52:28-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/security.http.test.ts","apps/api-nestjs/test/security.http.test.ts","scripts/check-runtime-acceptance.mjs"]}],"total_commits":0,"head_commit":{"id":"b673ff8c2e248dbea016f88702215123aa58fd03","message":"fix(ci): 修复 CI 恒红两处根因——测试计数被 ANSI 吞掉、篡改 JWT 构造可能零改动\n\n远端 CI 自 2026-08-14 起每次推送都红,共 7 次,无人当真。实测根因有二,\n都与本地环境差异有关,本机绿盘无法暴露(这正是 G14 不可被本地证据替代的原因)。\n\n根因一:假红——测试计数在 CI 下恒为 0\n`CI=true` 时 turbo 给子进程输出着色,实际字节是\n`Tests \\x1b[22m \\x1b[1m\\x1b[32m140 passed`;countPassedTests 的\n/Tests\\s+(\\d+)\\s+passed/ 匹配不到转义序列,于是本地 380、CI 0,\n报成「expected \u003e= 380, got 0」这种看似灾难性回归的消息。\n测试其实全过,坏的是计数器。修复:匹配前先剥 ANSI。\n注意这类假红不会被负向测试或空转测试发现——它们都在本地跑。\n\n根因二:flaky——「篡改 JWT」有约 1/64 概率篡改了个寂寞\ntampered 把签名第 5 位替换成 'A',但 payload 含 exp=now+600,签名每次都变;\n当该位恰好就是 'A' 时,产出的是与合法 token 逐字节相同的串,验签通过,\n断言 401 收到 200。base64url 64 字符 → 每次运行约 1.6% 触发,双后端同款。\n修复:先读该位,改成一个必定不同的字符。这类 flake 会悄悄削弱安全断言。\n\n验证:CI=true 条件下本地复现两处失败,修复后 pnpm check:runtime\nstatus=passed、testsPassed=380(地板 380)。\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/haimate/commit/b673ff8c2e248dbea016f88702215123aa58fd03","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-17T16:52:28-07:00","added":[],"removed":[],"modified":["apps/api-fastify/test/security.http.test.ts","apps/api-nestjs/test/security.http.test.ts","scripts/check-runtime-acceptance.mjs"]},"repository":{"id":74,"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":"haimate","full_name":"luoanwu/haimate","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":5661,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate/languages","html_url":"https://gitea.g-hi.com/luoanwu/haimate","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/haimate","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/haimate.git","clone_url":"https://gitea.g-hi.com/luoanwu/haimate.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-15T06:22:30+08:00","updated_at":"2026-08-18T07:42: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
|
2
|
8
|
1787010753
|
1787010832
|
0
|
1787010753
|
1787010832
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23506
|
fix(events)+test(learning): dispatcher 关闭等待在途 tick fix(events)+test(learning): dispatcher 关闭等待在途 tick + ActorSkillState 并发学习用例(G18 盲区)...
|
76
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
29718124b1918bbc4d17c98875c6043ec5fa3048
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"66900427c855e2ce43d634de9c6107dd6e8d1224","after":"29718124b1918bbc4d17c98875c6043ec5fa3048","compare_url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/compare/66900427c855e2ce43d634de9c6107dd6e8d1224...29718124b1918bbc4d17c98875c6043ec5fa3048","commits":[{"id":"29718124b1918bbc4d17c98875c6043ec5fa3048","message":"fix(events)+test(learning): dispatcher 关闭等待在途 tick + ActorSkillState 并发学习用例(G18 盲区)\n\n- 两后端 outbox dispatcher close 原来只 clearInterval、不等在途 tick——\n tick 可越过 redis.quit() 撞死连接(CI 收尾竞态实锤形态之一);\n 现 clearInterval + await inFlight(收窄竞态面,不宣称根治偶发)\n- 两后端各 +2 真实 DB 双事务并发用例(行锁定序确定性编排):\n 乐观锁 0 行拒绝 / 经验恰好 +1 防双记账 / 失败侧全量回滚(P4)/\n 全新技能并发首建 P2002 防双行\n- 地板棘轮:testsPassed 354→358(专属基座 runtime_g18+Redis/12 全量 358/358)、\n ownTests→54、ownTestCases→354\n- CI run 32345463489(docs-only 提交偶发红)复跑即绿,判责=偶发成立,形态已记 G18\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/29718124b1918bbc4d17c98875c6043ec5fa3048","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T01:09:40-07:00","added":["apps/api-fastify/test/learning.concurrency.test.ts","apps/api-nestjs/test/learning.concurrency.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/plugins/outbox.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","reports/baseline.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/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/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"29718124b1918bbc4d17c98875c6043ec5fa3048","message":"fix(events)+test(learning): dispatcher 关闭等待在途 tick + ActorSkillState 并发学习用例(G18 盲区)\n\n- 两后端 outbox dispatcher close 原来只 clearInterval、不等在途 tick——\n tick 可越过 redis.quit() 撞死连接(CI 收尾竞态实锤形态之一);\n 现 clearInterval + await inFlight(收窄竞态面,不宣称根治偶发)\n- 两后端各 +2 真实 DB 双事务并发用例(行锁定序确定性编排):\n 乐观锁 0 行拒绝 / 经验恰好 +1 防双记账 / 失败侧全量回滚(P4)/\n 全新技能并发首建 P2002 防双行\n- 地板棘轮:testsPassed 354→358(专属基座 runtime_g18+Redis/12 全量 358/358)、\n ownTests→54、ownTestCases→354\n- CI run 32345463489(docs-only 提交偶发红)复跑即绿,判责=偶发成立,形态已记 G18\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/digital-employee-os/commit/29718124b1918bbc4d17c98875c6043ec5fa3048","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-20T01:09:40-07:00","added":["apps/api-fastify/test/learning.concurrency.test.ts","apps/api-nestjs/test/learning.concurrency.test.ts"],"removed":[],"modified":["CLAUDE.md","apps/api-fastify/src/plugins/outbox.ts","apps/api-nestjs/src/events/outbox-dispatcher.service.ts","reports/baseline.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/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/ui-acceptance.latest.json","reports/validation-source.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":1181,"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":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-20T14:46:28+08:00","updated_at":"2026-08-20T15:45:09+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
|
1787213385
|
1787213410
|
0
|
1787213384
|
1787213411
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23525
|
Refresh UI acceptance evidence
|
57
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
cf66be23009de5ecbefad6083c173eb1df3f4c8b
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8e23fd115535dda184b584cb62396fa8286ef383","after":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","compare_url":"https://gitea.g-hi.com/luoanwu/image-generation/compare/8e23fd115535dda184b584cb62396fa8286ef383...cf66be23009de5ecbefad6083c173eb1df3f4c8b","commits":[{"id":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","message":"Refresh UI acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cf66be23009de5ecbefad6083c173eb1df3f4c8b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:52:24-07:00","added":[".playwright-cli/page-2026-08-26T00-51-22-049Z.yml",".playwright-cli/page-2026-08-26T00-51-44-022Z.yml",".playwright-cli/page-2026-08-26T00-51-59-765Z.yml"],"removed":[],"modified":["reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.png"]}],"total_commits":0,"head_commit":{"id":"cf66be23009de5ecbefad6083c173eb1df3f4c8b","message":"Refresh UI acceptance evidence\n","url":"https://gitea.g-hi.com/luoanwu/image-generation/commit/cf66be23009de5ecbefad6083c173eb1df3f4c8b","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-25T17:52:24-07:00","added":[".playwright-cli/page-2026-08-26T00-51-22-049Z.yml",".playwright-cli/page-2026-08-26T00-51-44-022Z.yml",".playwright-cli/page-2026-08-26T00-51-59-765Z.yml"],"removed":[],"modified":["reports/ui-acceptance.desktop.png","reports/ui-acceptance.latest.json","reports/ui-acceptance.mobile.png","reports/ui-acceptance.production.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":46243,"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":5,"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-08-26T08:47:05+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
|
1
|
4
|
1787705553
|
1787705605
|
0
|
1787705552
|
1787705605
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23537
|
feat(mobile): add governed Capacitor delivery
|
81
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
466e9752ba0f670d790b5134ff2d12e5b0e974ea
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7","after":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/compare/3d56a9a4fb9cccedf11cfdb53a470fa7f29e94c7...466e9752ba0f670d790b5134ff2d12e5b0e974ea","commits":[{"id":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","message":"feat(mobile): add governed Capacitor delivery\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/466e9752ba0f670d790b5134ff2d12e5b0e974ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T01:51:00-07:00","added":["apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/service/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/ios/.gitignore","apps/web/ios/App/App.xcodeproj/project.pbxproj","apps/web/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","apps/web/ios/App/App/AppDelegate.swift","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","apps/web/ios/App/App/Base.lproj/LaunchScreen.storyboard","apps/web/ios/App/App/Base.lproj/Main.storyboard","apps/web/ios/App/App/Info.plist","apps/web/ios/App/CapApp-SPM/.gitignore","apps/web/ios/App/CapApp-SPM/Package.swift","apps/web/ios/App/CapApp-SPM/README.md","apps/web/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift","apps/web/ios/debug.xcconfig","apps/web/src/features/service-cases/components/ServiceReportClient.tsx","reports/mobile-delivery.latest.json","scripts/build-mobile-web.mjs","scripts/check-mobile-delivery.mjs"],"removed":[],"modified":[".github/pull_request_template.md",".github/workflows/governance.yml","CLAUDE.md","README.md","apps/web/eslint.config.mjs","apps/web/package.json","apps/web/src/app/service/[token]/page.tsx","docs/domain/business-logic-map.md","package.json","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]}],"total_commits":0,"head_commit":{"id":"466e9752ba0f670d790b5134ff2d12e5b0e974ea","message":"feat(mobile): add governed Capacitor delivery\n","url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system/commit/466e9752ba0f670d790b5134ff2d12e5b0e974ea","author":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"committer":{"name":"luoguoguo","email":"luoguoguo@gmail.com","username":""},"verification":null,"timestamp":"2026-08-27T01:51:00-07:00","added":["apps/web/android/.gitignore","apps/web/android/app/.gitignore","apps/web/android/app/build.gradle","apps/web/android/app/capacitor.build.gradle","apps/web/android/app/proguard-rules.pro","apps/web/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java","apps/web/android/app/src/main/AndroidManifest.xml","apps/web/android/app/src/main/java/com/juhai/service/MainActivity.java","apps/web/android/app/src/main/res/drawable-land-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-land-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-hdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-mdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-port-xxxhdpi/splash.png","apps/web/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml","apps/web/android/app/src/main/res/drawable/ic_launcher_background.xml","apps/web/android/app/src/main/res/drawable/splash.png","apps/web/android/app/src/main/res/layout/activity_main.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml","apps/web/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png","apps/web/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png","apps/web/android/app/src/main/res/values/ic_launcher_background.xml","apps/web/android/app/src/main/res/values/strings.xml","apps/web/android/app/src/main/res/values/styles.xml","apps/web/android/app/src/main/res/xml/file_paths.xml","apps/web/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java","apps/web/android/build.gradle","apps/web/android/capacitor.settings.gradle","apps/web/android/gradle.properties","apps/web/android/gradle/wrapper/gradle-wrapper.jar","apps/web/android/gradle/wrapper/gradle-wrapper.properties","apps/web/android/gradlew","apps/web/android/gradlew.bat","apps/web/android/settings.gradle","apps/web/android/variables.gradle","apps/web/capacitor.config.ts","apps/web/ios/.gitignore","apps/web/ios/App/App.xcodeproj/project.pbxproj","apps/web/ios/App/App.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist","apps/web/ios/App/App/AppDelegate.swift","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png","apps/web/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-1.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732-2.png","apps/web/ios/App/App/Assets.xcassets/Splash.imageset/splash-2732x2732.png","apps/web/ios/App/App/Base.lproj/LaunchScreen.storyboard","apps/web/ios/App/App/Base.lproj/Main.storyboard","apps/web/ios/App/App/Info.plist","apps/web/ios/App/CapApp-SPM/.gitignore","apps/web/ios/App/CapApp-SPM/Package.swift","apps/web/ios/App/CapApp-SPM/README.md","apps/web/ios/App/CapApp-SPM/Sources/CapApp-SPM/CapApp-SPM.swift","apps/web/ios/debug.xcconfig","apps/web/src/features/service-cases/components/ServiceReportClient.tsx","reports/mobile-delivery.latest.json","scripts/build-mobile-web.mjs","scripts/check-mobile-delivery.mjs"],"removed":[],"modified":[".github/pull_request_template.md",".github/workflows/governance.yml","CLAUDE.md","README.md","apps/web/eslint.config.mjs","apps/web/package.json","apps/web/src/app/service/[token]/page.tsx","docs/domain/business-logic-map.md","package.json","pnpm-lock.yaml","reports/agent-adapters.latest.json","reports/auth-source.latest.json","reports/baseline.json","reports/contract-consumers.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/governance-docs.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/order-concurrency-guard.latest.json","reports/os-product.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/schema-sync.latest.json","reports/service-contracts.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json","scripts/governance-report.mjs"]},"repository":{"id":81,"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-after-sales-service-system","full_name":"luoanwu/juhai-after-sales-service-system","description":"巨嗨智服:受治理的 AI 售后服务系统","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2514,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-after-sales-service-system","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-after-sales-service-system.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-after-sales-service-system.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-26T08:47:15+08:00","updated_at":"2026-08-26T11:19:08+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
|
1787820687
|
1787820696
|
0
|
1787820687
|
1787820696
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23549
|
fix(ci): drop external actions, bootstrap toolchai fix(ci): drop external actions, bootstrap toolchain from LAN and mirrors...
|
91
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
b3c5c984414aa860f22c4e16c497d4e25515c067
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"625450881bfb787bfa4ac092e11bfe534c340163","after":"b3c5c984414aa860f22c4e16c497d4e25515c067","compare_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/compare/625450881bfb787bfa4ac092e11bfe534c340163...b3c5c984414aa860f22c4e16c497d4e25515c067","commits":[{"id":"b3c5c984414aa860f22c4e16c497d4e25515c067","message":"fix(ci): drop external actions, bootstrap toolchain from LAN and mirrors\n\nCI run #6 实锤:act_runner 解析 uses: actions/* 时要从 github.com 克隆\naction 本体,本网络到 github.com 间歇 EOF——只要还有 uses:,flake 就\n是常态。零 uses: 化:\n\n- checkout 用纯 git 打同 LAN gitea(full history,F5 需要祖先提交;\n host 模式 workspace 复用,clean 保留 node_modules/.turbo 加速)\n- Node 22 二进制从 npmmirror 下载(URL 已本地验证 200),按架构探测\n- 外网依赖收敛为 npm registry + npmmirror 两处\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/b3c5c984414aa860f22c4e16c497d4e25515c067","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T19:03:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]}],"total_commits":0,"head_commit":{"id":"b3c5c984414aa860f22c4e16c497d4e25515c067","message":"fix(ci): drop external actions, bootstrap toolchain from LAN and mirrors\n\nCI run #6 实锤:act_runner 解析 uses: actions/* 时要从 github.com 克隆\naction 本体,本网络到 github.com 间歇 EOF——只要还有 uses:,flake 就\n是常态。零 uses: 化:\n\n- checkout 用纯 git 打同 LAN gitea(full history,F5 需要祖先提交;\n host 模式 workspace 复用,clean 保留 node_modules/.turbo 加速)\n- Node 22 二进制从 npmmirror 下载(URL 已本地验证 200),按架构探测\n- 外网依赖收敛为 npm registry + npmmirror 两处\n\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next/commit/b3c5c984414aa860f22c4e16c497d4e25515c067","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-08-29T19:03:43-07:00","added":[],"removed":[],"modified":[".github/workflows/governance.yml"]},"repository":{"id":91,"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":"qwen3-8-flash-next","full_name":"luoanwu/qwen3-8-flash-next","description":"Qwen3.8-Flash-Next 本地部署与多模态 Chat/RAG 工作台","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":2993,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next/languages","html_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/qwen3-8-flash-next","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/qwen3-8-flash-next.git","clone_url":"https://gitea.g-hi.com/luoanwu/qwen3-8-flash-next.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-08-30T09:20:06+08:00","updated_at":"2026-08-30T09:56: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
|
8
|
1788055431
|
1788055528
|
0
|
1788055430
|
1788055528
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
23870
|
chore(reports): refresh clean static evidence @ b6 chore(reports): refresh clean static evidence @ b6df6d3(Mx-2 / Mx-6 后:runtime 336 / UI 5 绑定 879df4e;地板 336)...
|
116
|
5
|
platform.yml
|
7
|
5
|
0
|
refs/heads/main
|
69e687203ec23bd576dd7610db6d5db1f2197f6e
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"95d9793f80ea584ebb999543fbe94e9597897fe6","after":"69e687203ec23bd576dd7610db6d5db1f2197f6e","compare_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/compare/95d9793f80ea584ebb999543fbe94e9597897fe6...69e687203ec23bd576dd7610db6d5db1f2197f6e","commits":[{"id":"69e687203ec23bd576dd7610db6d5db1f2197f6e","message":"chore(reports): refresh clean static evidence @ b6df6d3(Mx-2 / Mx-6 后:runtime 336 / UI 5 绑定 879df4e;地板 336)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/69e687203ec23bd576dd7610db6d5db1f2197f6e","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-12T00:21:28-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"b6df6d321336de2cd8b36b517e4a2ca5ca25b31b","message":"docs(runtime): record clean commit acceptance @ 879df4e(runtime 336 / UI 5 / 差分 0,七 profile 单启合成模块端口形状;地板收紧 testsPassed 336)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/b6df6d321336de2cd8b36b517e4a2ca5ca25b31b","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-12T00:20:50-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]},{"id":"879df4eaf2c1917170d5c25afbcd5dd76bd2e0dd","message":"feat(modules): M2 / M3 / M5 / M6 端口失败关闭形状 + 七模块作业处理器接入描述符(开发计划 §3A Mx-1 端口/作业部分、Mx-2、Mx-6)\n\n- @juhai/module-kit:PlatformPortUnavailableError(code PLATFORM_PORT_UNAVAILABLE:有提供方但失败关闭)、PlatformPortRequestError\n (PLATFORM_PORT_INVALID_REQUEST:输入不符内核 zod 契约)、shapeJobHandlers(id, jobs)(kind = jobKind,入参任意对象,执行终态拒绝 JOB_NOT_IMPLEMENTED)。\n- 端口形状(输入先经内核 schema,畸形即 RequestError):M3 permission-shape 永不抛错、无租户 NO_TENANT_CONTEXT、其余 POLICY_UNAVAILABLE;\n M2 credential-shape 拒绝新租约 CREDENTIAL_BACKEND_UNAVAILABLE;M5 fact-shape 拒绝受理 FACT_INTAKE_UNAVAILABLE(不生成 factId);\n M6 audit-shape AUDIT_SINK_UNAVAILABLE(调用方回滚)。四模块 package.json 加 @juhai/kernel 0.16.1 exact pin。\n- 七模块描述符:ports 工厂(四模块)+ jobHandlers = shapeJobHandlers(identity 壳包亦登记终态拒绝形状);modules.json 未改。\n- api-nestjs mapPlatformPortError:PLATFORM_PORT_UNAVAILABLE → 503(带 reasonCode)、PLATFORM_PORT_INVALID_REQUEST → 400(带 issues)。\n- platform-tests:夹具增 rejecting 画像;port/modules.test.ts 让四模块 shape 提供方跑同一套端口一致性夹具(6 例)。\n- 测试:kit 9、credential 17、permission 33、fact 22、audit 31、scope 16、ai-gateway 12、platform-tests 20(+11 todo)、api-nestjs 单测 13;\n runtime 静态门禁 14 项 + lint + typecheck 通过。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/879df4eaf2c1917170d5c25afbcd5dd76bd2e0dd","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-12T00:18:30-07:00","added":["runtime/modules/audit/src/ports/audit-sink.port.test.ts","runtime/modules/audit/src/ports/audit-sink.port.ts","runtime/modules/credential/src/ports/service-credential.port.test.ts","runtime/modules/credential/src/ports/service-credential.port.ts","runtime/modules/fact/src/ports/fact-export.port.test.ts","runtime/modules/fact/src/ports/fact-export.port.ts","runtime/modules/permission/src/ports/permission-decision.port.test.ts","runtime/modules/permission/src/ports/permission-decision.port.ts","runtime/test/port/modules.test.ts"],"removed":[],"modified":["runtime/apps/api-nestjs/src/common/platform-errors.ts","runtime/modules/ai-gateway/src/index.ts","runtime/modules/audit/package.json","runtime/modules/audit/src/index.ts","runtime/modules/credential/package.json","runtime/modules/credential/src/index.ts","runtime/modules/fact/package.json","runtime/modules/fact/src/index.ts","runtime/modules/identity/src/index.ts","runtime/modules/kit/src/index.test.ts","runtime/modules/kit/src/index.ts","runtime/modules/permission/package.json","runtime/modules/permission/src/index.ts","runtime/modules/scope/src/index.ts","runtime/pnpm-lock.yaml","runtime/test/package.json","runtime/test/port/platform-ports.conformance.ts"]},{"id":"520f396d1fceec60786d49c1c26ba7cdeff5956a","message":"chore(reports): refresh clean static evidence @ 8b082f0(Mx-3 Planner 迁入后:runtime 320 / UI 5 绑定 f7a0cbb;地板 320)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/520f396d1fceec60786d49c1c26ba7cdeff5956a","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-12T00:08:29-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},{"id":"8b082f05ef2292253e7994c6b7d5a0389d4db8a9","message":"docs(runtime): record clean commit acceptance @ f7a0cbb(runtime 320 / UI 5 / 差分 0,含五模块 Planner 107 例;地板收紧 testsPassed 320)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/8b082f05ef2292253e7994c6b7d5a0389d4db8a9","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-12T00:07:55-07:00","added":[],"removed":[],"modified":["runtime/CLAUDE.md","runtime/reports/baseline.json","runtime/reports/conformance-differential.latest.json","runtime/reports/runtime-acceptance.latest.json","runtime/reports/ui-acceptance.latest.json"]}],"total_commits":0,"head_commit":{"id":"69e687203ec23bd576dd7610db6d5db1f2197f6e","message":"chore(reports): refresh clean static evidence @ b6df6d3(Mx-2 / Mx-6 后:runtime 336 / UI 5 绑定 879df4e;地板 336)\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/enterprise-platform/commit/69e687203ec23bd576dd7610db6d5db1f2197f6e","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-12T00:21:28-07:00","added":[],"removed":[],"modified":["reports/caddy.latest.json","reports/catalog-drift.latest.json","reports/catalog-reconciliation.latest.json","reports/facts.latest.json","reports/fixtures.latest.json","reports/migration-decs.latest.json","reports/module-imports.latest.json","reports/release-manifest.latest.json","runtime/reports/agent-adapters.latest.json","runtime/reports/conformance-matrix.latest.json","runtime/reports/contract-consumers.latest.json","runtime/reports/docs-truth.latest.json","runtime/reports/dual-backend-parity.latest.json","runtime/reports/fork-readiness.latest.json","runtime/reports/governance-docs.latest.json","runtime/reports/governance-rules.latest.json","runtime/reports/governance-status.latest.json","runtime/reports/governance.latest.json","runtime/reports/migrations.latest.json","runtime/reports/naming.latest.json","runtime/reports/runtime-governance.latest.json","runtime/reports/schema-sync.latest.json","runtime/reports/statemachine-write-guard.latest.json","runtime/reports/validation-source.latest.json"]},"repository":{"id":116,"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":"enterprise-platform","full_name":"luoanwu/enterprise-platform","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2095,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform/languages","html_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/enterprise-platform","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/enterprise-platform.git","clone_url":"https://gitea.g-hi.com/luoanwu/enterprise-platform.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-11T07:33:25+08:00","updated_at":"2026-09-12T15:08: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
|
22
|
1789198065
|
1789198088
|
0
|
1789198061
|
1789198112
|
group: platform-${{ github.workflow }}-${{ github. group: platform-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
platform-platform.yml-refs/heads/main
|
0
|
Edit
Delete
|
|
23914
|
docs(governance): record clean RC1 consumer verifi docs(governance): record clean RC1 consumer verification...
|
83
|
5
|
platform-governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
caf551df74c25b3bad8b1a5540f3cc8900649b2d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"c934bc46240daae849ad93cfacaa3b25c41b323f","after":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/compare/c934bc46240daae849ad93cfacaa3b25c41b323f...caf551df74c25b3bad8b1a5540f3cc8900649b2d","commits":[{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","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-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},{"id":"c39a56fdb9dbf93e1a4623165569f225775be692","message":"chore(governance): consume platform RC1 and require contract fixtures\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/c39a56fdb9dbf93e1a4623165569f225775be692","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-12T06:53:07-07:00","added":["docs/platform-rc1-upgrade-2026-09-12.md"],"removed":[],"modified":[".github/workflows/platform-governance.yml","CLAUDE.md","package.json","pnpm-lock.yaml"]}],"total_commits":0,"head_commit":{"id":"caf551df74c25b3bad8b1a5540f3cc8900649b2d","message":"docs(governance): record clean RC1 consumer verification\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-hr-system/commit/caf551df74c25b3bad8b1a5540f3cc8900649b2d","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-12T06:53:40-07:00","added":["reports/platform-rc1-upgrade.2026-09-12.json"],"removed":[],"modified":["docs/platform-rc1-upgrade-2026-09-12.md"]},"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":4056,"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":1,"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-12T17:48:19+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
|
1
|
8
|
1789221289
|
1789221322
|
0
|
1789221259
|
1789221322
|
|
|
0
|
Edit
Delete
|
|
23998
|
docs(企业控制面): 目录级 CLAUDE.md(并行会话产出,按原样收入)
|
117
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
631820930fa53485f2aecebf20f3be971e28badc
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"101380fb8b7d4c8b1095d7f3a53cb6df5251a58f","after":"631820930fa53485f2aecebf20f3be971e28badc","compare_url":"https://gitea.g-hi.com/luoanwu/platform-governance/compare/101380fb8b7d4c8b1095d7f3a53cb6df5251a58f...631820930fa53485f2aecebf20f3be971e28badc","commits":[{"id":"631820930fa53485f2aecebf20f3be971e28badc","message":"docs(企业控制面): 目录级 CLAUDE.md(并行会话产出,按原样收入)\n\n目录定位(基础设施层物理目录,只剩真源仓)、两个 git 仓的边界与远端、命令入口指向真源仓、四级文档层级、状态措辞纪律。由另一会话于 2026-09-16 16:31 写入工作树;治理层一致性门禁 root scope L4 / L10 零命中。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/631820930fa53485f2aecebf20f3be971e28badc","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-16T16:38:09-07:00","added":["企业控制面/CLAUDE.md"],"removed":[],"modified":[]}],"total_commits":0,"head_commit":{"id":"631820930fa53485f2aecebf20f3be971e28badc","message":"docs(企业控制面): 目录级 CLAUDE.md(并行会话产出,按原样收入)\n\n目录定位(基础设施层物理目录,只剩真源仓)、两个 git 仓的边界与远端、命令入口指向真源仓、四级文档层级、状态措辞纪律。由另一会话于 2026-09-16 16:31 写入工作树;治理层一致性门禁 root scope L4 / L10 零命中。\n\nCo-Authored-By: Claude Fable 5.1 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/platform-governance/commit/631820930fa53485f2aecebf20f3be971e28badc","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-16T16:38:09-07:00","added":["企业控制面/CLAUDE.md"],"removed":[],"modified":[]},"repository":{"id":117,"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":"platform-governance","full_name":"luoanwu/platform-governance","description":"","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":6846,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance/languages","html_url":"https://gitea.g-hi.com/luoanwu/platform-governance","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/platform-governance","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/platform-governance.git","clone_url":"https://gitea.g-hi.com/luoanwu/platform-governance.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-09-15T11:53:24+08:00","updated_at":"2026-09-17T07: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
|
1
|
4
|
1789601892
|
1789601907
|
0
|
1789601891
|
1789601907
|
|
|
0
|
Edit
Delete
|
|
24445
|
chore(reports): check:runtime 回绑 @ 76fe43e
|
82
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
2a7c134fce123669d2f0dfa1b7bccca165e4af50
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"7e2036be8923eff41481605454411a2291d5cc7a","after":"2a7c134fce123669d2f0dfa1b7bccca165e4af50","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/compare/7e2036be8923eff41481605454411a2291d5cc7a...2a7c134fce123669d2f0dfa1b7bccca165e4af50","commits":[{"id":"2a7c134fce123669d2f0dfa1b7bccca165e4af50","message":"chore(reports): check:runtime 回绑 @ 76fe43e\n\n隔离 pgvector PG + Redis + MinIO + ClamAV 真实验收通过:testsPassed 292(地板 279),\nprovenance gitSha=76fe43e worktreeDirty=false。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/2a7c134fce123669d2f0dfa1b7bccca165e4af50","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-23T15:55:45-07:00","added":[],"removed":[],"modified":["reports/dual-backend-behavior.latest.json","reports/runtime-acceptance.latest.json"]},{"id":"76fe43ebe411787f914adb0d79815c428c42e164","message":"chore(reports): 静态门禁报告回绑 @ 71432dc(clean,pnpm check 通过)\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/76fe43ebe411787f914adb0d79815c428c42e164","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-23T10:17:37-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":"71432dc0e01d64549680c5db306b62d6cdaa3839","message":"feat(experience): 工单作为企业控制面体验贡献来源(DEC-044)\n\n- contracts:experienceContribution / Item / ListResponse 与来源登记 schema,\n 纯函数 buildExecutionControlExperienceContributions(APP + NAV 两条)及登记体构造器,含单测\n- 双后端只读 GET /api/v1/experience/contributions:execution:read,tenant 只取已验签上下文,\n 不落库、不写 outbox,响应经 contracts schema 校验\n- scripts/register-experience-sources.mjs + pnpm experience:register:默认 dry-run,--execute 登记到平台\n- owner-matrix 登记 ExperienceContribution,新增来源蓝图、词典、README 与 .env.example\n- governance.registry.json execution-control 域纳入新入口、模块、路由、测试与租户入口\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/71432dc0e01d64549680c5db306b62d6cdaa3839","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-23T10:05:33-07:00","added":["apps/api-fastify/src/routes/experience.ts","apps/api-nestjs/src/experience/experience.controller.ts","apps/api-nestjs/src/experience/experience.module.ts","docs/domain/experience-contribution-source-blueprint.md","packages/contracts/src/experience.test.ts","packages/contracts/src/experience.ts","scripts/register-experience-sources.mjs"],"removed":[],"modified":["README.md","apps/api-fastify/.env.example","apps/api-fastify/src/app.ts","apps/api-fastify/test/auth.oidc.test.ts","apps/api-fastify/test/http.acceptance.test.ts","apps/api-nestjs/.env.example","apps/api-nestjs/src/app.module.ts","apps/api-nestjs/test/auth.oidc.test.ts","apps/api-nestjs/test/http.acceptance.test.ts","docs/README.md","docs/domain-glossary.md","docs/domain/owner-matrix.md","governance.registry.json","package.json","packages/contracts/src/index.ts"]},{"id":"1813358927b1d83d4deaa5d898ea48584c6eb6f1","message":"fix(notification): 注释与用例名改用 domain intent,恢复 check:naming 绿盘\n\nmain 7e2036b 引入的两处「business」命中 CI 强制扫描词表,pnpm check 在首环即红。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/1813358927b1d83d4deaa5d898ea48584c6eb6f1","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-23T10:05:21-07:00","added":[],"removed":[],"modified":["packages/notification-delivery/src/index.test.ts","packages/notification-delivery/src/index.ts"]}],"total_commits":0,"head_commit":{"id":"2a7c134fce123669d2f0dfa1b7bccca165e4af50","message":"chore(reports): check:runtime 回绑 @ 76fe43e\n\n隔离 pgvector PG + Redis + MinIO + ClamAV 真实验收通过:testsPassed 292(地板 279),\nprovenance gitSha=76fe43e worktreeDirty=false。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhai-ai-work-order-system/commit/2a7c134fce123669d2f0dfa1b7bccca165e4af50","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-23T15:55:45-07:00","added":[],"removed":[],"modified":["reports/dual-backend-behavior.latest.json","reports/runtime-acceptance.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":2441,"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-23T22:27:36+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}...
|
push
|
2
|
6
|
1790204942
|
1790204972
|
0
|
1790204488
|
1790204974
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: "true"
...
|
governance-governance.yml-refs/heads/main
|
1
|
Edit
Delete
|
|
24652
|
Merge remote-tracking branch 'origin/main' Merge remote-tracking branch 'origin/main' into codex/outcome-evaluation-context...
|
121
|
5
|
kernel-ci.yml
|
7
|
5
|
0
|
refs/heads/main
|
531738daba6ed7d634074e65138f030ab7bf8aa9
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"ed1670dc7e6483bacae603db2f59b4b0ecddd81c","after":"531738daba6ed7d634074e65138f030ab7bf8aa9","compare_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/compare/ed1670dc7e6483bacae603db2f59b4b0ecddd81c...531738daba6ed7d634074e65138f030ab7bf8aa9","commits":[{"id":"531738daba6ed7d634074e65138f030ab7bf8aa9","message":"Merge remote-tracking branch 'origin/main' into codex/outcome-evaluation-context\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/531738daba6ed7d634074e65138f030ab7bf8aa9","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-29T09:44:33-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]},{"id":"5e63155143e1d7b62db09c45f8f1a438b52a8e5e","message":"Extract Outcome and Evaluation contexts\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/5e63155143e1d7b62db09c45f8f1a438b52a8e5e","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-29T09:44:33-07:00","added":["src/contexts/evaluation.js","src/contexts/outcome.js","src/kernel/evaluation-definition.js","src/kernel/evidence-quality.js","src/kernel/outcome-scanner-ids.js","src/kernel/task-hierarchy.js"],"removed":[],"modified":["README.md","docs/all-local-event-payload-contracts.md","docs/architecture.md","docs/roadmap.md","model/catalog.json","model/module-ratchet.json","ops/runbook.md","package.json","src/kernel.js","src/outcome-confirmation-scanner.js","src/outcome-expiry-scanner.js","test/entity-ref-remaining.integration.test.js"]}],"total_commits":0,"head_commit":{"id":"531738daba6ed7d634074e65138f030ab7bf8aa9","message":"Merge remote-tracking branch 'origin/main' into codex/outcome-evaluation-context\n","url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model/commit/531738daba6ed7d634074e65138f030ab7bf8aa9","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-29T09:44:33-07:00","added":[],"removed":[],"modified":[".gitea/workflows/kernel-ci.yml","docs/local-ci.md"]},"repository":{"id":121,"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":"seven-domain-five-dimension-unified-model","full_name":"luoanwu/seven-domain-five-dimension-unified-model","description":"七域五维统一领域模型独立仓:领域内核、31章规范与运行记录","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":30970,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model/languages","html_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/seven-domain-five-dimension-unified-model","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/seven-domain-five-dimension-unified-model.git","clone_url":"https://gitea.g-hi.com/luoanwu/seven-domain-five-dimension-unified-model.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":6,"open_issues_count":0,"open_pr_counter":4,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-09-29T05:06:56+08:00","updated_at":"2026-09-30T00:44: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
|
2
|
4
|
1790700305
|
1790700319
|
0
|
1790700304
|
1790700319
|
|
|
0
|
Edit
Delete
|
|
25668
|
Bump eslint from 10.5.0 to 10.11.0 and package.jso Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)...
|
137
|
5
|
versions.yml
|
7
|
5
|
0
|
refs/heads/main
|
949feb2413d6458794dcd2491c4babbbce0c15c1
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"0000000000000000000000000000000000000000","after":"949feb2413d6458794dcd2491c4babbbce0c15c1","compare_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/compare/d1fcc24e82935aad3ffaca8fa0af970179d4da3c...949feb2413d6458794dcd2491c4babbbce0c15c1","commits":[{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","message":"chore: update dependencies and add license files (#1642)\n\n* chore: update dependencies and add license files\n\n- Bump @actions/cache from 6.2.0 to 6.3.0 in package.json and package-lock.json\n- Update @actions/glob from 0.6.1 to 0.7.0 in package-lock.json\n- Update brace-expansion from 5.0.9 to 5.0.12 in package.json and package-lock.json\n- Bump undici from 6.28.0 to 6.29.0 in package-lock.json\n- Add license files for @actions/glob and minimatch dependencies\n\n* chore: update minimatch dependency file\n\n---------\n\nCo-authored-by: HarithaVattikuti \u003c73516759+HarithaVattikuti@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7207c4f1189c7ee83ddf20c7c68bd1af6fdd751c","author":{"name":"Haritha","email":"73516759+v-HarithaVattikuti@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:39:15-05:00","added":[".licenses/npm/@actions/glob.dep.yml",".licenses/npm/minimatch.dep.yml"],"removed":[".licenses/npm/@actions/glob-0.6.1.dep.yml",".licenses/npm/@actions/glob-0.7.0.dep.yml",".licenses/npm/minimatch-10.2.6.dep.yml",".licenses/npm/minimatch-3.1.5.dep.yml"],"modified":[".licenses/npm/@actions/cache.dep.yml",".licenses/npm/brace-expansion.dep.yml",".licenses/npm/undici.dep.yml","dist/cache-save/index.js","dist/setup/index.js","package-lock.json","package.json"]},{"id":"54337e0d02de9202d0948aaff36ad556375497b9","message":"Bump eslint-plugin-n from 18.1.0 to 18.3.0 (#1638)\n\nBumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 18.1.0 to 18.3.0.\n- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)\n- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v18.1.0...v18.3.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint-plugin-n\n dependency-version: 18.3.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/54337e0d02de9202d0948aaff36ad556375497b9","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:45:08-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","message":"Bump jest-each from 30.4.1 to 30.5.2 (#1636)\n\nBumps [jest-each](https://github.com/jestjs/jest/tree/HEAD/packages/jest-each) from 30.4.1 to 30.5.2.\n- [Release notes](https://github.com/jestjs/jest/releases)\n- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-each)\n\n---\nupdated-dependencies:\n- dependency-name: jest-each\n dependency-version: 30.5.2\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/fb54fa8c14c63410cc752f0ae3b7b3ca6af161fc","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-01T14:44:20-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},{"id":"7f84f1d52d0c56afb45c62fee31a93b843cea4d6","message":"Bump pnpm/action-setup from 6.0.10 to 6.1.0 (#1631)\n\nBumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 6.0.10 to 6.1.0.\n- [Release notes](https://github.com/pnpm/action-setup/releases)\n- [Commits](https://github.com/pnpm/action-setup/compare/0977fd99725f1db4007ccb2928dbb4e90d06cc86...ea17c68df8912ef543352723c149a84f56e3d413)\n\n---\nupdated-dependencies:\n- dependency-name: pnpm/action-setup\n dependency-version: 6.1.0\n dependency-type: direct:production\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/7f84f1d52d0c56afb45c62fee31a93b843cea4d6","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-09-25T16:05:28-05:00","added":[],"removed":[],"modified":[".github/workflows/e2e-cache.yml"]}],"total_commits":0,"head_commit":{"id":"949feb2413d6458794dcd2491c4babbbce0c15c1","message":"Bump eslint from 10.5.0 to 10.11.0 and package.json from 7.0.0 to 7.1.0 (#1635)\n\n* Bump eslint from 10.5.0 to 10.11.0\n\nBumps [eslint](https://github.com/eslint/eslint) from 10.5.0 to 10.11.0.\n- [Release notes](https://github.com/eslint/eslint/releases)\n- [Commits](https://github.com/eslint/eslint/compare/v10.5.0...v10.11.0)\n\n---\nupdated-dependencies:\n- dependency-name: eslint\n dependency-version: 10.11.0\n dependency-type: direct:development\n update-type: version-update:semver-minor\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\n\n* Bump version from 7.0.0 to 7.1.0 in package.json and package-lock.json\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: mahabaleshwars \u003c147705296+mahabaleshwars@users.noreply.github.com\u003e","url":"https://gitea.g-hi.com/luoanwu/actions-setup-node/commit/949feb2413d6458794dcd2491c4babbbce0c15c1","author":{"name":"dependabot[bot]","email":"49699333+dependabot[bot]@users.noreply.github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2026-10-07T21:43:26-05:00","added":[],"removed":[],"modified":["package-lock.json","package.json"]},"repository":{"id":137,"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":"actions-setup-node","full_name":"luoanwu/actions-setup-node","description":"Mirror of github.com/actions/setup-node for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-setup-node","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-setup-node.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-setup-node.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:36:42+08:00","updated_at":"2026-10-13T06:38:34+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
|
169
|
1791846519
|
1791950477
|
0
|
1791844717
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25685
|
Retry on 413 response codes (#108)
|
138
|
5
|
codeql-analysis.yml
|
7
|
5
|
0
|
refs/tags/v2.1.3
|
268d7547644ab8a9d0c1163299e59a1f5d93f39b
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.1.3","bef {"ref":"refs/tags/v2.1.3","before":"0000000000000000000000000000000000000000","after":"268d7547644ab8a9d0c1163299e59a1f5d93f39b","compare_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/compare/0000000000000000000000000000000000000000...268d7547644ab8a9d0c1163299e59a1f5d93f39b","commits":[],"total_commits":0,"head_commit":{"id":"268d7547644ab8a9d0c1163299e59a1f5d93f39b","message":"Retry on 413 response codes (#108)\n\n","url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact/commit/268d7547644ab8a9d0c1163299e59a1f5d93f39b","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-08-04T17:36:48+02:00","added":[],"removed":[],"modified":["dist/index.js","package-lock.json","package.json"]},"repository":{"id":138,"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":"actions-upload-artifact","full_name":"luoanwu/actions-upload-artifact","description":"Mirror of github.com/actions/upload-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-upload-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-upload-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-upload-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:06+08:00","updated_at":"2026-10-13T06:38: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
|
1791850514
|
1791851537
|
0
|
1791844729
|
1791851537
|
|
|
0
|
Edit
Delete
|
|
25697
|
Update README.md
|
139
|
5
|
test.yml
|
7
|
5
|
0
|
refs/tags/v2.0.1
|
1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d
|
0
|
0
|
0
|
push
|
{"ref":"refs/tags/v2.0.1","bef {"ref":"refs/tags/v2.0.1","before":"0000000000000000000000000000000000000000","after":"1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","compare_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/compare/0000000000000000000000000000000000000000...1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","commits":[],"total_commits":0,"head_commit":{"id":"1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","message":"Update README.md","url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact/commit/1ac47ba4b6af92e65d0438b64ce1ea49ce1cc48d","author":{"name":"Konrad Pabjan","email":"konradpabjan@github.com","username":""},"committer":{"name":"GitHub","email":"noreply@github.com","username":""},"verification":null,"timestamp":"2020-07-15T12:35:21+02:00","added":[],"removed":[],"modified":["README.md"]},"repository":{"id":139,"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":"actions-download-artifact","full_name":"luoanwu/actions-download-artifact","description":"Mirror of github.com/actions/download-artifact for Gitea Actions (MIT)","empty":false,"private":true,"fork":false,"template":false,"mirror":false,"size":27,"language":"TypeScript","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact/languages","html_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/actions-download-artifact","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/actions-download-artifact.git","clone_url":"https://gitea.g-hi.com/luoanwu/actions-download-artifact.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-13T06:37:23+08:00","updated_at":"2026-10-13T06:38:59+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
|
6
|
1791854145
|
1791950481
|
0
|
1791844740
|
1791950481
|
|
|
0
|
Edit
Delete
|
|
25818
|
feat(console): 接入权限说明与操作记录的操作对象快照
|
125
|
16
|
verify.yml
|
7
|
16
|
0
|
refs/heads/feat/console-layout
|
ff5ee33515b0a21b6ba738d00c52373fabfaa50d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/feat/console-layout {"ref":"refs/heads/feat/console-layout","before":"0000000000000000000000000000000000000000","after":"ff5ee33515b0a21b6ba738d00c52373fabfaa50d","compare_url":"https://gitea.g-hi.com/pengzhiyu/IAM/compare/3cf111b21a47760e5c71fc6b2fba96d882dbd3f1...ff5ee33515b0a21b6ba738d00c52373fabfaa50d","commits":[{"id":"ff5ee33515b0a21b6ba738d00c52373fabfaa50d","message":"feat(console): 接入权限说明与操作记录的操作对象快照\n\n后端已为权限增加可选说明,并在操作记录中返回操作对象类型、代码快照和展示摘要。控制台此前无法填写或查看权限说明,操作记录也看不出操作了哪个对象。\n\n实现内容:\n- 权限类型增加 description;完整清单提交时其余每条权限原样带上当前说明或 null,版本号固定为当前值加 1\n- 平台「新增或修改权限」弹窗增加可选说明多行框:预填已有说明、显示字数、上限 1000、拦截回车,换行/制表符/格式字符在前端提示,首尾空白去掉、清空或全空白提交 null\n- 后端返回 INVALID_PERMISSION_DESCRIPTION 时给出具体修改提示\n- PermissionLabel 支持显示说明;平台权限表、企业权限清单(搜索可匹配说明)与 PermissionPicker 显示说明,为空时不占位\n- PermissionPicker 中说明经 aria-describedby 关联,不并入勾选框名称\n- 操作记录列表在操作名称下显示「类型「代码」 · 应用」;未知类型统一称「对象」,无快照时省略\n- 操作记录详情增加「操作对象」,摘要优先 display_summary,原 summary 移到技术细节「内部摘要」;旧记录说明未记录对象名称\n- acceptance-t03 同步新的按钮名称\n\n验证:\n- npm run format:check、npm run lint、npm run typecheck:通过\n- npm test:26 个测试文件、227 项通过(新增说明保留与清空、说明校验、编辑弹窗、选择器无障碍名称、操作对象快照与回退用例)\n- 浏览器在 1280 宽、375 窄屏及亮/暗色下用页面内临时拦截 fetch 模拟新字段检查显示:正常\n- 未与包含 V29 的新后端联调;acceptance-t03 未运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/ff5ee33515b0a21b6ba738d00c52373fabfaa50d","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T00:48:33-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/src/lib/audit-actions.ts","iam-admin-web/src/lib/t03-api.ts","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/styles/applications.css","iam-admin-web/src/styles/audit.css","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/test/application-management.test.tsx","iam-admin-web/src/test/audit.test.tsx","iam-admin-web/src/test/authorization-management.test.tsx"]},{"id":"9631e78cfeee4abd1ccb7e7f777864e4815ded49","message":"chore: 合并 main 引入权限说明与操作对象快照后端\n\n前端接入权限说明与操作记录操作对象前,先把 main 上的后端交付(a435000、536e36c、85e2c17)合入前端分支。\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/9631e78cfeee4abd1ccb7e7f777864e4815ded49","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T00:33:36-07:00","added":["docs/console/permission-description-audit-target-handoff.md","iam-server/src/main/java/com/iam/server/accounts/AuditTargetSnapshot.java","iam-server/src/main/resources/db/migration/V29__permission_description.sql","iam-server/src/test/java/com/iam/server/protocol/ObservedProtocolFixture.java","iam-server/src/test/java/com/iam/server/protocol/PermissionDescriptionIT.java","iam-server/src/test/java/com/iam/server/protocol/ProtocolPortAllocationIT.java","iam-server/src/test/java/com/iam/server/protocol/ProtocolTestPort.java","iam-server/src/test/java/com/iam/server/security/AuthDiagnosticsTestProbe.java","iam-server/src/test/java/com/iam/server/security/AuthDiagnosticsTestProbeTest.java"],"removed":[],"modified":["docs/audit-security.md","docs/authorization.md","docs/data-foundation.md","docs/schemas/permission-catalog.schema.json","docs/tasks/P12-auth-ingress-attribution-design.md","docs/tasks/P12-software-optimization.md","iam-server/src/main/java/com/iam/server/accounts/AccountStore.java","iam-server/src/main/java/com/iam/server/accounts/AuditReadService.java","iam-server/src/main/java/com/iam/server/accounts/AuthorizationService.java","iam-server/src/main/java/com/iam/server/protocol/RefreshExpiryGuard.java","iam-server/src/main/java/com/iam/server/protocol/RefreshGovernance.java","iam-server/src/main/java/com/iam/server/security/AuthRequestDiagnostics.java","iam-server/src/test/java/com/iam/server/data/AuthorizationMigrationIT.java","iam-server/src/test/java/com/iam/server/data/MigrationIT.java","iam-server/src/test/java/com/iam/server/protocol/AuditReadIT.java","iam-server/src/test/java/com/iam/server/protocol/AuthIngressConservativeIT.java","iam-server/src/test/java/com/iam/server/protocol/AuthIngressLifecycleIT.java","iam-server/src/test/java/com/iam/server/protocol/AuthIngressTimeContractIT.java","iam-server/src/test/java/com/iam/server/protocol/CapacityDiagnosticsTest.java","iam-server/src/test/java/com/iam/server/protocol/ProtocolFixture.java","iam-server/src/test/java/com/iam/server/protocol/RefreshExpiryGuardTest.java","iam-server/src/test/java/com/iam/server/protocol/RefreshExpiryLifecycleIT.java","iam-server/src/test/java/com/iam/server/security/AuthRequestDiagnosticsTest.java","scripts/capacity/auth_diagnostics.py","scripts/capacity/test_auth_diagnostics.py"]},{"id":"3973681b67a737220c25c4bc3f916ca2b687b5ee","message":"feat(console): 重排个人中心并把登录记录改为当前登录加表格\n\n个人中心原先把邮箱、多因素验证放在最前,账号信息压在下方;登录记录每条都是一张大卡片,十几条记录要滚很久,已过期的登录也和当前登录一样醒目。本次按控制台其他页面的布局约定重排个人中心。\n\n实现内容:\n- 上排并列「我的账号」(名字首字头像 + 平台管理身份徽标)与「我的企业」(企业 / 你的身份 / 成员代码三列表格,手机上收窄内边距不必横向滚动)\n- 邮箱与多因素验证合并为「账号安全」卡片,左侧标题与说明、右侧内容,900px 以下上下排列;多因素验证面板与登录页共用,本次未改\n- 邮箱区域改用与多因素验证相同外观的状态摘要(未登记 / 未验证 / 已验证 + 投递状态);登记或发送验证邮件的表单点按钮后就地展开,展开后聚焦第一个字段,提交后无论成败都清除密码;「取消待处理的验证与恢复链接」改名为「作废已发出的邮件链接」并保持常驻(找回密码链接不体现在邮箱状态里)\n- 登录记录拆为「当前这次登录」单独一块(四个时间 + 期限规则)与「其他登录」表格(登录时间 + 编号缩写 / 状态 / 最近使用 / 自动退出于);表格时间用今天、昨天等简短写法,完整时间在悬停提示中\n- 已退出的登录不再显示退出按钮;已过期、已失效的登录仍可退出以撤销业务系统中残留的授权,按钮改为轻量样式,整行弱化\n- 退出确认弹窗底部改为「取消 + 确认退出」,补充最近使用时间,登录编号带名称与注解;账号标识同样带名称与注解\n- 单测改用新的邮箱按钮与字段名,新增「当前登录单独列出、已退出的登录不提供退出按钮」用例;acceptance-p11-t02 同步新的邮箱登记流程与已验证文案,acceptance-t05 依赖的类名与按钮名保持不变\n\n验证:\n- npm run format:check:通过\n- npm run typecheck:通过\n- npm run lint:通过\n- npm run test:26 个测试文件、224 项全部通过\n- 浏览器检查 1280 宽、375 窄屏与亮暗色,整页无横向溢出;邮箱登记表单与退出确认弹窗只打开查看,未实际提交\n- acceptance-p11-t02、acceptance-t05:未运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/3973681b67a737220c25c4bc3f916ca2b687b5ee","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T00:28:12-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p11-t02.mjs","iam-admin-web/src/pages/EmailRecoveryPage.tsx","iam-admin-web/src/pages/PersonalPage.tsx","iam-admin-web/src/styles/email.css","iam-admin-web/src/styles/personal.css","iam-admin-web/src/test/email-recovery.test.tsx","iam-admin-web/src/test/personal.test.tsx"]},{"id":"2508f797ba72291a981665d5f4fcc4fb86280af8","message":"feat(console): 为技术细节中的编号补充名称与用途注解\n\n技术细节原先只列出编号,部分地方连名称都没有,普通使用者看不懂这串字符是什么、什么时候用得上。本次为各页面技术细节中的编号、版本和代码补充名称与一句用途说明。\n\n实现内容:\n- TechDetails 展开后先显示一句总说明:这些编号用于定位记录,日常不需要关心,反馈问题时可复制给管理员或技术支持\n- DescriptionList 每项新增可选 hint,在值下方显示灰色注解;有注解时值包在 .dlist__value 中,按值定位的测试不受注解文字影响\n- 新增 lib/tech-hints.ts 统一注解文案:对象标识、记录版本、账号标识与成员标识的区别、密钥编号、客户端标识与客户端代码的区别等\n- 工作台账号标识、程序接入新建密钥后的密钥编号、应用接入新建客户端后的客户端标识原先只露出编号,改为带名称的描述列表并加注解\n- 企业、账号、成员、部门、用户组、应用接入、应用开通、角色、授权、程序接入、程序身份、权限查询接入、操作记录、状态变更影响预览中的技术细节逐项补充注解\n- 同步 acceptance-p10-t01、acceptance-t03 中按记录版本值定位的选择器为 dd .dlist__value\n\n验证:\n- npm run format:check:通过\n- npm run typecheck:通过\n- npm run lint:通过\n- npm run test:26 个测试文件、223 项全部通过(暂时移开个人中心未提交改动后单独运行)\n- 浏览器检查应用接入客户端详情抽屉的技术细节注解显示正常;其余页面未逐页目测\n- acceptance-p10-t01、acceptance-t03:未运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/2508f797ba72291a981665d5f4fcc4fb86280af8","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T00:27:34-07:00","added":["iam-admin-web/src/lib/tech-hints.ts"],"removed":[],"modified":["iam-admin-web/scripts/acceptance-p10-t01.mjs","iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/src/components/Layout.tsx","iam-admin-web/src/pages/HomePage.tsx","iam-admin-web/src/pages/management/ApplicationAdmissionPage.tsx","iam-admin-web/src/pages/management/ApplicationLifecycle.tsx","iam-admin-web/src/pages/management/ApplicationsPage.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/BindingsPage.tsx","iam-admin-web/src/pages/management/DecisionCallersPage.tsx","iam-admin-web/src/pages/management/GroupsPage.tsx","iam-admin-web/src/pages/management/MachineClientsPage.tsx","iam-admin-web/src/pages/management/MembersPage.tsx","iam-admin-web/src/pages/management/OrganizationsPage.tsx","iam-admin-web/src/pages/management/PlatformPages.tsx","iam-admin-web/src/pages/management/PlatformTenantPage.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/pages/management/ServicePrincipalsPage.tsx","iam-admin-web/src/styles/components.css"]},{"id":"e5c32be5d8e106d727495fd92d5b3bf6ab2a3b4f","message":"feat(console): 把权限查询接入改为分区详情抽屉并以选择代替粘贴标识登记\n\n权限查询接入页列表与详情只显示一串 UUID,登记时需要手动粘贴企业、应用、服务三个标识;系统过期后状态仍显示「正常」,管理员无法看出它的查询已被拒绝。本次按控制台已定的列表、抽屉与弹窗样式重排该页。\n\n实现内容:\n- 列表改为「查询的应用 / 所属企业 / 到期时间 / 状态」,应用名称是打开详情的按钮、整行可点;企业与应用名称各读取第一页(最多 100 个),读不到时回退为「类别 + 标识前 8 位」\n- 正常但已过期的系统显示「已过期」徽标并提示查询会被拒绝,正常且 3 天内到期时提前提醒;列表新增定制空状态\n- 详情抽屉分「基本信息(企业、应用、服务名称)/ 密钥说明 / 停用(危险区)」,四个标识与固定查询范围收进技术细节;停用默认收起为按钮,展开后勾选确认、可取消,停用后抽屉保持打开并把焦点留在抽屉上\n- 登记改为两步:平铺列表选正常状态的企业,再用单选卡片选该企业已启用的应用和应用下的服务,填写摘要与到期时间(输入框限定现在至 30 天后);底部为「重新选择企业 / 确认登记」,提交字段与原来一致\n- 公共样式 .card__actions 不再收缩,卡片说明较长时操作按钮保持一行;600px 以下卡片头部换行,按钮排到标题下方\n- 同步登记单测为按企业、应用、服务选择的流程,acceptance-t03 的 A11 改为点击应用名称打开详情、展开停用并等待停用后的说明\n\n验证:\n- npm run format:check、npm run lint:通过\n- npx tsc -b:通过\n- npm run test:26 个测试文件、223 项全部通过\n- 浏览器在演示环境查看 1280 宽、375 窄屏与亮暗色;演示环境未开启登记功能,登记流程用页面内临时拦截请求验证,提交字段正确且未写入后端\n- acceptance-t03:未运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/e5c32be5d8e106d727495fd92d5b3bf6ab2a3b4f","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-12T23:49:35-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/src/pages/management/DecisionCallersPage.tsx","iam-admin-web/src/styles/components.css","iam-admin-web/src/test/application-management.test.tsx"]}],"total_commits":0,"head_commit":{"id":"ff5ee33515b0a21b6ba738d00c52373fabfaa50d","message":"feat(console): 接入权限说明与操作记录的操作对象快照\n\n后端已为权限增加可选说明,并在操作记录中返回操作对象类型、代码快照和展示摘要。控制台此前无法填写或查看权限说明,操作记录也看不出操作了哪个对象。\n\n实现内容:\n- 权限类型增加 description;完整清单提交时其余每条权限原样带上当前说明或 null,版本号固定为当前值加 1\n- 平台「新增或修改权限」弹窗增加可选说明多行框:预填已有说明、显示字数、上限 1000、拦截回车,换行/制表符/格式字符在前端提示,首尾空白去掉、清空或全空白提交 null\n- 后端返回 INVALID_PERMISSION_DESCRIPTION 时给出具体修改提示\n- PermissionLabel 支持显示说明;平台权限表、企业权限清单(搜索可匹配说明)与 PermissionPicker 显示说明,为空时不占位\n- PermissionPicker 中说明经 aria-describedby 关联,不并入勾选框名称\n- 操作记录列表在操作名称下显示「类型「代码」 · 应用」;未知类型统一称「对象」,无快照时省略\n- 操作记录详情增加「操作对象」,摘要优先 display_summary,原 summary 移到技术细节「内部摘要」;旧记录说明未记录对象名称\n- acceptance-t03 同步新的按钮名称\n\n验证:\n- npm run format:check、npm run lint、npm run typecheck:通过\n- npm test:26 个测试文件、227 项通过(新增说明保留与清空、说明校验、编辑弹窗、选择器无障碍名称、操作对象快照与回退用例)\n- 浏览器在 1280 宽、375 窄屏及亮/暗色下用页面内临时拦截 fetch 模拟新字段检查显示:正常\n- 未与包含 V29 的新后端联调;acceptance-t03 未运行\n","url":"https://gitea.g-hi.com/pengzhiyu/IAM/commit/ff5ee33515b0a21b6ba738d00c52373fabfaa50d","author":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"committer":{"name":"starry","email":"gamebyteyu@gmail.com","username":""},"verification":null,"timestamp":"2026-10-13T00:48:33-07:00","added":[],"removed":[],"modified":["iam-admin-web/scripts/acceptance-t03.mjs","iam-admin-web/src/lib/audit-actions.ts","iam-admin-web/src/lib/t03-api.ts","iam-admin-web/src/pages/management/ApplicationContracts.tsx","iam-admin-web/src/pages/management/AuditPage.tsx","iam-admin-web/src/pages/management/AuthorizationShared.tsx","iam-admin-web/src/pages/management/RolesPage.tsx","iam-admin-web/src/styles/applications.css","iam-admin-web/src/styles/audit.css","iam-admin-web/src/styles/authorization.css","iam-admin-web/src/test/application-management.test.tsx","iam-admin-web/src/test/audit.test.tsx","iam-admin-web/src/test/authorization-management.test.tsx"]},"repository":{"id":125,"owner":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"228834386@qq.com","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"name":"IAM","full_name":"pengzhiyu/IAM","description":"Identity and Access Management(身份识别与访问管理)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":101765,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM/languages","html_url":"https://gitea.g-hi.com/pengzhiyu/IAM","url":"https://gitea.g-hi.com/api/v1/repos/pengzhiyu/IAM","link":"","ssh_url":"git@gitea.g-hi.com:pengzhiyu/IAM.git","clone_url":"https://gitea.g-hi.com/pengzhiyu/IAM.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-10-08T17:04:24+08:00","updated_at":"2026-10-13T08:51: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":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"},"sender":{"id":16,"login":"pengzhiyu","login_name":"","source_id":0,"full_name":"","email":"16+pengzhiyu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/bcd8cfbb58b96e4afa8ab5f6ac09cb16","html_url":"https://gitea.g-hi.com/pengzhiyu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-07-15T09:26:56+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":"pengzhiyu"}}...
|
push
|
3
|
4
|
1791877969
|
1791878086
|
0
|
1791877967
|
1791878086
|
|
|
0
|
Edit
Delete
|
|
26087
|
docs(device): align current verification table wit docs(device): align current verification table with final S2 reports...
|
135
|
5
|
governance.yml
|
7
|
5
|
0
|
refs/heads/main
|
4d2d9352220bed528bbfdce783ae269bf03a7b5d
|
0
|
0
|
0
|
push
|
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"8a42cf77069e4a70692e366281b75ab8848f3e7c","after":"4d2d9352220bed528bbfdce783ae269bf03a7b5d","compare_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/compare/8a42cf77069e4a70692e366281b75ab8848f3e7c...4d2d9352220bed528bbfdce783ae269bf03a7b5d","commits":[{"id":"4d2d9352220bed528bbfdce783ae269bf03a7b5d","message":"docs(device): align current verification table with final S2 reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/4d2d9352220bed528bbfdce783ae269bf03a7b5d","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-18T04:08:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/s2-candidate.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]}],"total_commits":0,"head_commit":{"id":"4d2d9352220bed528bbfdce783ae269bf03a7b5d","message":"docs(device): align current verification table with final S2 reports\n","url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud/commit/4d2d9352220bed528bbfdce783ae269bf03a7b5d","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-18T04:08:52-07:00","added":[],"removed":[],"modified":["CLAUDE.md","reports/agent-adapters.latest.json","reports/ci-evidence.latest.json","reports/conformance-differential.latest.json","reports/conformance-matrix.latest.json","reports/contract-consumers.latest.json","reports/device-boundaries.latest.json","reports/docs-truth.latest.json","reports/dual-backend-parity.latest.json","reports/evidence-current.latest.json","reports/fork-readiness.latest.json","reports/governance-docs.latest.json","reports/governance-rules.latest.json","reports/governance-status.latest.json","reports/governance.latest.json","reports/migrations.latest.json","reports/naming.latest.json","reports/runtime-acceptance.latest.json","reports/runtime-governance.latest.json","reports/s2-candidate.latest.json","reports/schema-sync.latest.json","reports/statemachine-write-guard.latest.json","reports/ui-acceptance.latest.json","reports/validation-source.latest.json"]},"repository":{"id":135,"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-thing-cloud","full_name":"luoanwu/juhai-thing-cloud","description":"物云:02「物」域应用,自设备云 juhai-device-cloud 4652ce0 分叉","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2124,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhai-thing-cloud","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhai-thing-cloud.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhai-thing-cloud.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":1,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"main","archived":false,"created_at":"2026-10-12T21:14:44+08:00","updated_at":"2026-10-18T19:04:45+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
|
12
|
1792321881
|
1792321911
|
0
|
1792321736
|
1792321943
|
group: governance-${{ github.workflow }}-${{ githu group: governance-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
...
|
governance-governance.yml-refs/heads/main
|
0
|
Edit
Delete
|